这是我的代码请帮忙! 无法将我的int转换为布尔值哈哈 我确定此代码也存在许多问题。 如果有人能解释那将是非常棒的!
import java.util.Scanner;
public class Lab2
{
public static void main(String[] args)
{
int width = -10 <= 10;
int height = -5 <= 5;
double choice1;
double choice2;
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter X and Y coordinates.");
choice1 = keyboard.nextLine().charAt(0);
choice2 = keyboard.nextLine().charAt(1);
if (choice1 == width || choice2 == height)
System.out.println("Coordinates are out of the rectangle.");
else System.out.println("Coordinates are in the rectangle.");
}
}
答案 0 :(得分:0)
您的代码存在一些问题。首先,您阅读doubles
的方式 - 请查看charAt()
的文档。 Double.parseDouble
就是你想要的。
然后你的定义是width
和height
- Java不会神奇地做你想要的,那些变量需要分配数字,而不是数字范围。
最后,检查点是否在矩形内 - 您可能想在纸上绘制这个以清楚地了解发生了什么。
以下是修复这些问题的代码:
import java.util.Scanner;
public class Lab2 {
public static void main(String[] args) {
int width = 10;
int height = 5;
double x = 0, y = 0;
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter X coordinate:");
try {
x = Double.parseDouble(keyboard.nextLine());
System.out.println("Enter Y coordinate:");
y = Double.parseDouble(keyboard.nextLine());
} catch(NumberFormatException nfe) {
System.out.println("You didn't enter a number. Exiting.");
return;
}
if (x < -width/2 || x > width/2 || y < -height/2 || y > height/2)
System.out.println("Coordinates are out of the rectangle.");
else
System.out.println("Coordinates are in the rectangle.");
}
}
修改强>
根据要求,在同一行输入两个坐标:
System.out.println("Enter coordinates separated by a comma:");
String[] input = keyboard.nextLine().split(",");
if(input.length != 2) {
System.out.println("Invalid input. Exiting.");
return;
}
try {
x = Double.parseDouble(input[0]);
System.out.println("Enter Y coordinate:");
y = Double.parseDouble(input[1]);
}