Rectangle Java类中的坐标

时间:2018-03-21 00:32:52

标签: java

这是我的代码请帮忙! 无法将我的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.");

         }
    }

1 个答案:

答案 0 :(得分:0)

您的代码存在一些问题。首先,您阅读doubles的方式 - 请查看charAt()的文档。 Double.parseDouble就是你想要的。

然后你的定义是widthheight - 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]);
}