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



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

我写了一些代码,但每当我写像 2 这样的坐标时;2 然后它输出红色,我该如何解决这个问题。 我不确定这是如何工作的,但我需要程序在坐标未着色时输出"白色"。每当我尝试
其他 System.out.println("white"( 它不起作用,我收到错误说"线程"main"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");
}

在此代码中

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");

当你只有一个语句时,你真的不必使用括号,你可以在末尾添加 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");

最新更新