嵌套的If语句出错

时间:2014-10-02 17:49:36

标签: java if-statement conditional-statements

我尝试使用Java中的嵌套if-statement创建程序。但我很困惑,因为我在Eclipse中else if statement收到错误。

import java.io.*;

public class Sem3 {    
    public static void main (String [] args) throws IOException
    {
        InputStreamReader inStream = new InputStreamReader (System.in);
        BufferedReader stdin = new BufferedReader (inStream);
        int x ;
        String str;            
        {
            System.out.print("Please Input An Integer :");
            str = stdin.readLine(); 
            x = Integer.parseInt(str);
            if (x == 10)
                System.out.print("Your Integer Is Equal To 10");
            else if (x == 11)
                System.out.print("Your Integer Is Equal To 11");
            else 
                System.out.print("LOSER");
        }                
    }
}

我的问题是,为什么我不能在if-statementelse if条件之后再做if,但我可以在if statement之后再做else条件?

3 个答案:

答案 0 :(得分:1)

你的if-else-elseif块需要采用以下形式,每个块周围都有大括号:

    if (x == 10){
            System.out.print("Your Integer Is Equal To 10");
            /*more conditions here...
              if(condition){

              }else if(condition2){
              }
              */
    }else if (x == 11){
            System.out.print("Your Integer Is Equal To 11");
    }else {
            System.out.print("LOSER");

答案 1 :(得分:1)

如果条件评估为Single Selection If Statement,那么此处的内容称为TRUE,它只会执行下一行代码。

像:

if (someConditional)
    // do this if true
// this, here,  will always execute

你的问题是你有一个悬空else if,就编译器而言,它没有附加到任何东西。

你所追求的是If Statement Block,看起来像是:

if (something) {
   // do stuff
} else if (somethingElse) {
    // do stuff
} else if (somethingEvenElse) {
    // do stuff
} else {
    // do stuff
}

该块将在{ }

中执行任意数量的语句

答案 2 :(得分:0)

首先,在您放置if / else条件的String str之后,不需要大括号(“{}”)块;因此,请尝试删除该括号集{}。 根据你的问题“我的问题是,为什么我不能在其他if语句之后再做if条件”。

你可以在if条件之后执行if或else if语句。

例如(只是语法而不是任何特定代码) - 它将编译

 public void test() {

        int i =0 ;
        int j=1;
        if(i==1)
        {
           System.out.println("print--"+i); // goes more logic or conditions here
        }
        else if (j==1)
        {
               System.out.println("print--"+j); // goes more logic or conditions here

        }
        if(i==0)
        {
               System.out.println("print--"+i); // goes more logic or conditions here
        }
        else
        {
          // goes more logic or conditions here
        }
        if(true)
        {
          // goes more logic or conditions here

        }
   }