[英]break statement in “if else” - java
if
沒有else
if
,我一直都會收到錯誤。
我試着else if
還有
for (;;){
System.out.println("---> Your choice: ");
choice = input.nextInt();
if (choice==1)
playGame();
if (choice==2)
loadGame();
if (choice==3)
options();
if (choice==4)
credits();
if (choice==5)
System.out.println("End of Game\n Thank you for playing with us!");
break;
else
System.out.println("Not a valid choice!\n Please try again...\n");=[;'mm
}
如果您對如何呈現此代碼有更好的了解,請不要猶豫:)
因為你的else
沒有附加任何東西。 if
without braces只包含緊跟其后的單個語句。
if (choice==5)
{
System.out.println("End of Game\n Thank you for playing with us!");
break;
}
else
{
System.out.println("Not a valid choice!\n Please try again...\n");
}
不使用大括號通常被視為一種不好的做法,因為它可能導致您遇到的確切問題。
此外,在這里使用switch
會更有意義。
int choice;
boolean keepGoing = true;
while(keepGoing)
{
System.out.println("---> Your choice: ");
choice = input.nextInt();
switch(choice)
{
case 1:
playGame();
break;
case 2:
loadGame();
break;
// your other cases
// ...
case 5:
System.out.println("End of Game\n Thank you for playing with us!");
keepGoing = false;
break;
default:
System.out.println("Not a valid choice!\n Please try again...\n");
}
}
請注意,我使用了while(boolean)
而不是無限for
循環,這樣就可以輕松退出循環。 另一種方法是使用break with labels。
“break”命令在“if”語句中不起作用。
如果從代碼中刪除“break”命令然后測試代碼,您應該發現代碼的工作方式完全相同,而沒有“break”命令。
“Break”設計用於內部循環(for,while,do-while,enhanced for和switch)。
問題是你試圖在不使用{}
的if
下使用if
語句。 你現在擁有的東西被解釋為:
if( choice==5 )
{
System.out.println( ... );
}
break;
else
{
//...
}
你真的想要:
if( choice==5 )
{
System.out.println( ... );
break;
}
else
{
//...
}
此外,作為鬧劇曾表示,這將是更好地使用else if
所有的條件,而不是if
,因為如果choice==1
,它仍將經歷,並檢查是否choice==5
,這會失敗,它仍然會進入你的其他區塊。
if( choice==1 )
//...
else if( choice==2 )
//...
else if( choice==3 )
//...
else if( choice==4 )
//...
else if( choice==5 )
{
//...
}
else
//...
更優雅的解決方案是使用switch
語句。 然而, break
從最內部的“塊”只是休息,除非你使用的標簽。 所以你想要標記你的循環,如果情況是5那么打破它:
LOOP:
for(;;)
{
System.out.println("---> Your choice: ");
choice = input.nextInt();
switch( choice )
{
case 1:
playGame();
break;
case 2:
loadGame();
break;
case 2:
options();
break;
case 4:
credits();
break;
case 5:
System.out.println("End of Game\n Thank you for playing with us!");
break LOOP;
default:
System.out.println( ... );
}
}
您也可以使用標志來告訴循環停止,而不是標記循環。
bool finished = false;
while( !finished )
{
switch( choice )
{
// ...
case 5:
System.out.println( ... )
finished = true;
break;
// ...
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.