新手Java,Else没有If

时间:2014-09-07 03:16:04

标签: java

处理java项目并遇到困难时,第二个if语句会出现多个错误,声称}不是方法的正确开头,而else没有if语句。被困在这几个小时。 : - /

import java.util.Scanner;
public class Practice_4_4
{
  public static void main(String[]args)
  {
    Scanner scan = new Scanner(System.in);

    int x;
    int y;
    int coordinate;

    System.out.print("Enter the X coordinate: ");
    x = scan.nextInt();

    System.out.print("Enter the Y coordinate: ");
    y = scan.nextInt();


    if (x == 0 && y == 0)
        System.out.print("(0,0) is the origin");

    else if (x > 0 || x < 0 && y == 0)
        System.out.print("(" + x + ",0) is on the X axis");

    else if (y > 0 || y < 0 && x == 0)

  }

 }

3 个答案:

答案 0 :(得分:1)

请注意,if条件必须后跟代码语句或块,并且只有if条件为true时才会调用此语句或块。您的上一个else if...之后没有任何语句或代码块。

所以这句话:else if (y>0 || y<0 && x==0)后面应该跟一些代码块,如果该语句为真则调用它。例如:

else if (y>0 || y<0 && x==0) {
  // this block is called if the condition is true.
}

顺便说一句,请注意良好的代码格式化可以帮助您进行调试和草率格式化,特别是草率的缩进,恰恰相反。对清洁和定期缩进做一点努力将大大有助于您更好地调试代码。

因此改进的格式看起来像......

import java.util.Scanner;

public class Practice_4_4 {
   public static void main(String[] args) {
      Scanner scan = new Scanner(System.in);
      int x;
      int y;
      int coordinate; // what are you going to do with this variable?

      System.out.print("Enter the X coordinate: ");
      x = scan.nextInt();
      System.out.print("Enter the Y coordinate: ");
      y = scan.nextInt();

      if (x == 0 && y == 0) {
         System.out.print("(0,0) is the origin");
      } else if (x > 0 || x < 0 && y == 0) {
         System.out.print("(" + x + ",0) is on the X axis");
      } else if (y > 0 || y < 0 && x == 0) {
         // you need this block here
      }
   }
}

另外,在编程教育的这个阶段,你应该强烈考虑将所有 if语句,else语句,for循环,while循环,任何类型的循环括起来,所有这些都带有花括号,所以它们被包含在代码块中。这样做可以防止将来出现错误,你会添加一行代码,认为它是由一个if布尔条件控制的,实际上并非如此。

答案 1 :(得分:0)

class IfElse {

    public static void main(String[] args) {

        int x1=0, y1=0, x2=1, y2=1, x3=1, y3=0, x4=0, y4=1;

        // 0, 0 is origin
        // 1, 1 is quadrant
        // 1, 0 is X axis
        // 0, 1 is Y axis

        ifElse(x1, y1);
        ifElse(x2, y2);
        ifElse(x3, y3);
        ifElse(x4, y4);

    }

    public static void ifElse(int x, int y) {

        if(x == 0 && y == 0)
            System.out.println("point is on origin...");
        else {
            if(x == 0)
                System.out.println("point is on Y axis...");
            else if(y == 0)
                System.out.println("point is on X axis...");
            else
                System.out.println("point is in a quadrant...");
        }

    }

}

答案 2 :(得分:0)

没有问题,因为你是Java编程语言的新手。伙计,只是听我说,在最后的其他地方,如果阻止你没有任何东西,最后如果阻止是无用的。您可以修复它:

else if (y > 0 || y < 0 && x == 0){
System.out.println(“Something!”);
}

我希望,它对你有用!祝你好运,我的java朋友; - )