我尝试使用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-statement
或else if
条件之后再做if
,但我可以在if statement
之后再做else
条件?
答案 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
}
}