Java Switch语句赢得';不要打断
我刚开始学习Java 7软件设计学习switch()和do…while()等等 当我在Intelli J IDEA 13中编译和运行程序时,它可以很好地编译和运行,但当语句完成时,不会有任何中断 例如,当程序运行时,在案例2中,当我输入3个等级(90,90,90,-1)后输入-1时,它会给出平均值(270),但随后它会重复 它应该会中断并返回到开关菜单的开头。即使我在菜单中输入3,它也会无限大地显示“此处无代码…”,即使有break语句(即使break语句已经过时)Java Switch语句赢得';不要打断,java,switch-statement,do-while,Java,Switch Statement,Do While,我刚开始学习Java 7软件设计学习switch()和do…while()等等 当我在Intelli J IDEA 13中编译和运行程序时,它可以很好地编译和运行,但当语句完成时,不会有任何中断 例如,当程序运行时,在案例2中,当我输入3个等级(90,90,90,-1)后输入-1时,它会给出平均值(270),但随后它会重复 它应该会中断并返回到开关菜单的开头。即使我在菜单中输入3,它也会无限大地显示“此处无代码…”,即使有break语句(即使break语句已经过时) 您只接受一次输入,然后在输入
您只接受一次输入,然后在输入不是4时循环。因为输入永远不会改变,所以永远不变 开关内的
断路器刚刚从开关中跳出来。然后你继续你的循环
请写以下几行:
System.out.println("Enter 1 to set percentage of total for new grades, 2 to enter new grades, 3 to get average, and 4 to quit: ");
choice = input.nextInt();
在do
循环内,而不是在循环外。然后,每次循环时都会请求新的输入
您必须在循环之外声明choice
,因为您在底部的中引用它
将此行置于do
循环上方:
int choice;
您只接受一次输入,然后在输入不是4时循环。因为输入永远不会改变,所以永远不变
开关内的断路器刚刚从开关中跳出来。然后你继续你的循环
请写以下几行:
System.out.println("Enter 1 to set percentage of total for new grades, 2 to enter new grades, 3 to get average, and 4 to quit: ");
choice = input.nextInt();
在do
循环内,而不是在循环外。然后,每次循环时都会请求新的输入
您必须在循环之外声明choice
,因为您在底部的中引用它
将此行置于do
循环上方:
int choice;
因此,它总是再次循环并再次按下开关的原因是,您永远不会再次更改choice
的值。break
语句仅从switch
语句中断,而不是循环本身。完成开关后
需要再次询问用户是否要选择其他选项,或者是否要输入4以退出
break
语句将仅从最内部的…组中中断?陈述我不确定正确的单词是什么,但它只会突破一个层次,而不是全部
为了说明这一点,请始终记住循环有四个部分:初始化、条件、主体和更改器
初始化:条件中的变量被赋予其初始值;在do…while()的情况下,这可能发生在循环内部代码>并且可能有多个位置
条件:决定循环是否继续的部分
Body:循环的代码
改变者:(我注意到,这是最常错过的一个)一个或多个点,在你的条件下,变量的值正在改变;可能有多个位置和多个变量受到影响,因此它总是再次循环并再次按下开关的原因是因为您永远不会再次更改选项的值。break
语句仅从switch
语句中断,而不是循环本身。完成开关后
需要再次询问用户是否要选择其他选项,或者是否要输入4以退出
break
语句将仅从最内部的…组中中断?陈述我不确定正确的单词是什么,但它只会突破一个层次,而不是全部
为了说明这一点,请始终记住循环有四个部分:初始化、条件、主体和更改器
初始化:条件中的变量被赋予其初始值;在do…while()的情况下,这可能发生在循环内部代码>并且可能有多个位置
条件:决定循环是否继续的部分
Body:循环的代码
改变者:(我注意到,这是最常错过的一个)一个或多个点,在你的条件下,变量的值正在改变;可能有多个位置和多个变量受到影响您的代码有两个问题,1)您的while循环不接受输入,2)您需要输入4来打破循环,而不是-1我们是在讨论案例2还是整个程序,Mehul Rathod?@MehulRathod:-1是您输入以摆脱内部循环的内容,箱子2里面的那个。输入4以退出外部循环,这就是is issue的所在(因为他没有给出再次选择的选项)。您的代码有两个问题,1)您的while循环不接受输入,2)您需要输入4以打破循环,而不是-1我们是在讨论案例2还是整个程序,Mehul Rathod?@MehulRathod:-1是您输入的内容,用于从内部循环中退出,即案例2中的循环。输入4以退出外部循环,这就是问题所在(因为他没有给出再次选择的选项)“m getting java:找不到符号符号:变量选择位置:class TestingPlatformOops,抱歉。编辑我的答案!我的上帝。。。你是一个救世主Blorgbeard!感谢您花时间帮助我解决无限循环问题!对于“while(choice!=4);”我该怎么办“m getting java:找不到符号符号:变量选择位置:class TestingPlatformOops,抱歉。编辑我的答案!我的上帝。。。你是一个救世主Blorgbeard!感谢您花时间帮助我解决无限循环问题!啊,就像Blorgbeard说的,把switch语句放在do里面而不是外面,这样当break语句发生时,它会返回菜单。感谢乔希·布劳恩的建议!哎,,