不知道为什么我的程序看不到x> =

时间:2018-09-11 18:05:42

标签: java

我刚刚开始学习Java,我知道我的代码很丑,所以不要介意丑。 因此,对于学校来说,我必须使用Java编写一个程序,以检查输入的坐标中的颜色。我被分配了这张图片http://prntscr.com/kt8jyh

我写了一些代码,但是每当我写2; 2之类的坐标时,它就会输出红色,我该如何解决。 而且我不确定这是如何工作的,但是我需要程序在没有坐标的情况下输出“白色”。每当我尝试
其他     System.out.println(“白色”) 它不起作用,我得到一个错误消息,指出“线程“主”中的异常” java.lang.Error:未解决的编译问题:     令牌“ else”上的语法错误,请删除此令牌”

Scanner a = new Scanner(System.in);
Scanner b = new Scanner(System.in);

System.out.println("Ievadi x");
String x1 = a.nextLine(); 

System.out.println("ievadi y"); 
String y1 = b.nextLine();   

float x = Float.parseFloat(x1);
float y = Float.parseFloat(y1);

if (x>=6 && x<=8 || y>=2 && y<=4)
    System.out.println("Red");
else if (x>=3-x && x<=x-11 || y<=4 && y>=9) {
    System.out.println("blue");
}
else if ((x-7) + (x-7) + (y-9) + (y-9) == 25) {
    System.out.println("Green") ;

    System.out.println("white");

}

2 个答案:

答案 0 :(得分:0)

在此代码中

    else if ((x-7) + (x-7) + (y-9) + (y-9) == 25) {
              System.out.println("Green") ;
    // you can't put else here because it is inside a { } block              
                  System.out.println("white");
              }

您可以做的就是关闭该块并开始一个新的块。

    else if ((x-7) + (x-7) + (y-9) + (y-9) == 25) {
              System.out.println("Green") ;
    } else {
                  System.out.println("white");
              }

或不使用{}块

    else if ((x-7) + (x-7) + (y-9) + (y-9) == 25) 
              System.out.println("Green") ;
    else 
              System.out.println("white");

答案 1 :(得分:0)

当您只有一条语句时,您实际上不必使用方括号,并且可以像下面这样将else语句添加到末尾

if( x >= 6 && x <= 8 && y >= 2 && y <= 4 )
  System.out.print("Red");
else if( (x >= 2 && x <= 12 && y >= 4 && y <= 9 )  && ( (x <= 7 && y >= x ) || ( x > 7 && y <=x ) ) )
    System.out.print("Blue");
else if ( ( y >= 9 && y <=14 && x >= 2 && x <= 12 ) && ( y*y - (x-2)*(x-2) <= 5*5  ) )
    System.out.print("Green");
else
    System.out.print("White");