我有一个有4个案例的代码,我试图打破循环,如果' f'案例被选中。然后从那种情况中选择。当我尝试使用超过30个错误的if语句时,但当我把它拿走时代码很好。
String one = "";
boolean yea = true;
Scanner sw = new Scanner(System.in);
while (yea == true)
{
System.out.print(MENU);
one = sw.next();
char choice = one.charAt(0);
switch(choice)
{
case 'f':
friendsList();
break;
case 'w':
wall();
break;
case 'p':
network();
break;
case 'q' :
yea = false;
break;
default:
System.out.println("Error: You have entered " + choice +
". Please try again");
}
}
if (case == 'f')
{
break;
}
}
答案 0 :(得分:1)
您可以使用Java label
(请参阅此代码示例BreakWithLabelDemo.java)将您的代码告诉break
。
myloop:
while ( true ){
switch( choice ){
case 'f':
friendsList();
break myloop;
}
}
答案 1 :(得分:1)
对于您的实现,在进入switch语句之前打破特定情况是有意义的。例如:
char choice = one.charAt(0);
if (choice == 'f') break;
switch(choice)
这似乎是退出while循环的一种非常简单的方法,而不会与switch语句的break语句冲突。
或者,如果您仍然需要在choice
为'f'
时调用friendsList方法,则可以将该if语句移到switch语句之后。
注意:有了这个,您还应该删除代码示例底部的if语句。
答案 2 :(得分:0)
if (case == 'f')
本声明中的情况如何?您应该选择替换它。
if (choice == 'f')
答案 3 :(得分:0)
你需要把if放在while循环中。
String one = "";
boolean yea = true;
Scanner sw = new Scanner(System.in);
while (yea == true)
{
System.out.print(MENU);
one = sw.next();
char choice = one.charAt(0);
switch(choice)
{
case 'f':
friendsList();
break;
case 'w':
wall();
break;
case 'p':
network();
break;
case 'q' :
yea = false;
break;
default:
System.out.println("Error: You have entered " + choice +
". Please try again");
}
if (choice == 'f')
{
break;
}
}
答案 4 :(得分:0)
if语句应该在while循环内移动才有效,if语句中的case应该改为选择。
所以
While(yea==true)
{
System.out.print(MENU);
one = sw.next();
char choice = one.charAt(0);
if(choice == 'F')
{
break;
}
switch(choice)
{
//cases
}
}