2015-09-27 62 views
-1

我不知道如何解决这些错误。这是我的代码:如何更正Java中的“非法表达式开始”和其他错误?

import java.io.BufferedReader; 
import java.io.InputStreamReader; 

public class Ld1151rdb331 { 
    public static void main(String[] args) { 
     BufferedReader br = new BufferedReader(
      new InputStreamReader(System.in)); 
     float x=0, y=0; 
     String s; 

     System.out.println("Paula Plauča IRDBD01 151RDB331"); 

     try { 
      System.out.print("x="); 
      s = br.readLine(); 
      x = Float.parseFloat(s); 
      System.out.print("y="); 
      s = br.readLine(); 
      y = Float.parseFloat(s); 
     } catch(Exception e){ 
      System.out.println("input-output error"); 
      return; 
     } 

     if ((x-4)*(x-4)+(y-3)*(y-3)<=1) || (x-8)*(x-8)+(y-3)*(y-3)<=1) || (y>=5) && ((x-7.5)*(x-7.5)+(y-5)*(y-5)<=(2.5*2.5)) 
      System.out.println("green"); 
      else 
      if (y>=5 && x>=2 && y<=9-x) 
        System.out.println("blue"); 
      else 
        if ((x>=2 && x<=5 || x>=2 && x<=10) && y>=3 && y<=7) 
        System.out.println("red"); 
       else 
        System.out.println("white"); 
    } 
} 

而且显示这些错误:

compilation info 

Main.java:25: error: illegal start of expression 

     if ((x-4)*(x-4)+(y-3)*(y-3)<=1) || (x-8)*(x-8)+(y-3)*(y-3)<=1) || (y>=5) && ((x-7.5)*(x-7.5)+(y-5)*(y-5)<=(2.5*2.5)) 
             ^

Main.java:25: error: ';' expected 

     if ((x-4)*(x-4)+(y-3)*(y-3)<=1) || (x-8)*(x-8)+(y-3)*(y-3)<=1) || (y>=5) && ((x-7.5)*(x-7.5)+(y-5)*(y-5)<=(2.5*2.5)) 
                    ^
Main.java:25: error: not a statement 

     if ((x-4)*(x-4)+(y-3)*(y-3)<=1) || (x-8)*(x-8)+(y-3)*(y-3)<=1) || (y>=5) && ((x-7.5)*(x-7.5)+(y-5)*(y-5)<=(2.5*2.5)) 

             ^
Main.java:25: error: ';' expected 

     if ((x-4)*(x-4)+(y-3)*(y-3)<=1) || (x-8)*(x-8)+(y-3)*(y-3)<=1) || (y>=5) && ((x-7.5)*(x-7.5)+(y-5)*(y-5)<=(2.5*2.5)) 

             ^
Main.java:25: error: not a statement 

     if ((x-4)*(x-4)+(y-3)*(y-3)<=1) || (x-8)*(x-8)+(y-3)*(y-3)<=1) || (y>=5) && ((x-7.5)*(x-7.5)+(y-5)*(y-5)<=(2.5*2.5)) 
                        ^
Main.java:25: error: ';' expected 

     if ((x-4)*(x-4)+(y-3)*(y-3)<=1) || (x-8)*(x-8)+(y-3)*(y-3)<=1) || (y>=5) && ((x-7.5)*(x-7.5)+(y-5)*(y-5)<=(2.5*2.5)) 
                         ^
Main.java:25: error: not a statement 

     if ((x-4)*(x-4)+(y-3)*(y-3)<=1) || (x-8)*(x-8)+(y-3)*(y-3)<=1) || (y>=5) && ((x-7.5)*(x-7.5)+(y-5)*(y-5)<=(2.5*2.5)) 

                     ^
Main.java:25: error: ';' expected 

     if ((x-4)*(x-4)+(y-3)*(y-3)<=1) || (x-8)*(x-8)+(y-3)*(y-3)<=1) || (y>=5) && ((x-7.5)*(x-7.5)+(y-5)*(y-5)<=(2.5*2.5)) 
                           ^
Main.java:25: error: not a statement 

     if ((x-4)*(x-4)+(y-3)*(y-3)<=1) || (x-8)*(x-8)+(y-3)*(y-3)<=1) || (y>=5) && ((x-7.5)*(x-7.5)+(y-5)*(y-5)<=(2.5*2.5)) 
                            ^

Main.java:25: error: ';' expected 

     if ((x-4)*(x-4)+(y-3)*(y-3)<=1) || (x-8)*(x-8)+(y-3)*(y-3)<=1) || (y>=5) && ((x-7.5)*(x-7.5)+(y-5)*(y-5)<=(2.5*2.5)) 
                             ^
Main.java:25: error: not a statement 

     if ((x-4)*(x-4)+(y-3)*(y-3)<=1) || (x-8)*(x-8)+(y-3)*(y-3)<=1) || (y>=5) && ((x-7.5)*(x-7.5)+(y-5)*(y-5)<=(2.5*2.5)) 
                              ^
Main.java:25: error: ';' expected 

     if ((x-4)*(x-4)+(y-3)*(y-3)<=1) || (x-8)*(x-8)+(y-3)*(y-3)<=1) || (y>=5) && ((x-7.5)*(x-7.5)+(y-5)*(y-5)<=(2.5*2.5)) 
                              ^

Main.java:27: error: 'else' without 'if' 

      else 
     ^
13 errors 

也许有人可以帮忙,我不明白。

+2

确保开括号的数量相匹配封闭的人的数量。 – MrTux

+0

你应该使用适当的编码风格,实际工作。你有什么是行不通的。 –

+0

锄头你的意思是? – Paula

回答

1

您在if声明中的括号数量错误。解决这个问题的一个办法是,以确保您附上每一个逻辑条件与括号:

if (((x-4)*(x-4)+(y-3)*(y-3)<=1) || 
    ((x-8)*(x-8)+(y-3)*(y-3)<=1) || 
    ((y>=5) && ((x-7.5)*(x-7.5)+(y-5)*(y-5)<=(2.5*2.5)))) 
+0

谢谢,但我不明白最后 - 否则没有,如果没有,如果 – Paula

+0

@PaulaPlauča错误的括号介绍了Java的理解块开始和结束。一旦你修好了,其他的一切都会好的。 – Mureinik

+0

是的,它的工作原理,谢谢 – Paula

1

你的if语句缺少开或右括号或格式不正确。这可以给你一个开始,另外我建议你使用IDE以避免这些类型的错误。

import java.io.BufferedReader; 
import java.io.InputStreamReader; 

public class Ld1151rdb331 { 
public static void main(String[] args) { 
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
    float x = 0, y = 0; 
    String s; 

    System.out.println("Paula Plau?a IRDBD01 151RDB331"); 

    try { 
     System.out.print("x="); 
     s = br.readLine(); 
     x = Float.parseFloat(s); 
     System.out.print("y="); 
     s = br.readLine(); 
     y = Float.parseFloat(s); 
    } catch (Exception e) { 
     System.out.println("input-output error"); 
     return; 
    } 

    if (((x - 4) * (x - 4) + (y - 3) * (y - 3) <= 1) 
      || ((x - 8) * (x - 8) + (y - 3) * (y - 3) <= 1) 
      || ((y >= 5) && ((x - 7.5) * (x - 7.5) + (y - 5) * (y - 5) <= (2.5 * 2.5)))) 
     System.out.println("green"); 
    else if (y >= 5 && x >= 2 && y <= 9 - x) 
     System.out.println("blue"); 
    else if ((x >= 2 && x <= 5 || x >= 2 && x <= 10) && y >= 3 && y <= 7) 
     System.out.println("red"); 
    else 
     System.out.println("white"); 
    } 
} 

HAPPY_CODING