/ 当我运行程序时。在切换中的if语句中添加信用后,总信用额超过20后,循环/开关不会中断循环。它继续运行,增加了学分。需要修复什么? /
import java.util.ArrayList;
import java.util.Scanner;
public class CoursesRegistration {
public static void main(String[] args) {
Scanner kb=new Scanner(System.in);
int choose=0;
int option;
ArrayList<String> CourseOffer = new ArrayList<String>();
CourseOffer.add(" CS1001-Basic Programming 3 Credit RM300.00");
CourseOffer.add(" CS1002-Python Programming 4 Credit RM400.00");
CourseOffer.add(" CS1004-Operating System 3 Credit RM300.00");
CourseOffer.add(" CS1005-Web Graphical Interface (GUI) 3 Credit RM300.00");
CourseOffer.add(" CS1006-Web Programming 4 Credit RM400.00");
CourseOffer.add(" CS1007-Agile Development 3 Credit RM300.00");
CourseOffer.add(" CS1008-Database Implementation 3 Credit RM300.00");
CourseOffer.add(" CS1009-System Security 3 Credit RM300.00");
CourseOffer.add(" CS1010-Software Testing 3 Credit RM300.00");
CourseOffer.add(" NA1001-Culture and Social 2 Credit RM300.00");
do{
double cost=0;
for(int i=0;i<CourseOffer.size();i++)
{
System.out.println((i+1)+"-"+CourseOffer.get(i) );
}
System.out.println("");
int total=0;
while(choose != 99)
{
if(total >= 20)
{
break;
}
System.out.print("Please choose your subject recomend for this semester: ");
choose=kb.nextInt();
switch(choose){
case 1:
if(total+3>20)
{
break;
}
else
{
System.out.println("CS1001 Basic Programming");
total +=3;
cost+=300;
}
break;
case 2:
if(total+4>20)
{
break;
}
else
{
System.out.println("CS1002 Python Programming ");
total +=4;
cost+=400;
}
break;
case 3:
if(total+3>20)
{
break;
}
else
{
System.out.println("CS1004 Operating System");
total += 3;
cost+=300;
}
break;
case 4:
if(total+3>20)
{
break;
}
else
{
System.out.println("CS1005 Web Graphical Interface (GUI ");
total += 3;
cost+=300;
}
break;
case 5:
if(total+4>20)
{
break;
}
else
{
System.out.println("CS1006 Web Programming ");
total += 4;
cost+=400;
}
break;
case 6:
if(total+3>20)
{
break;
}
else
{
System.out.println("CS1007 Agile Development ");
total+= 3;
cost+=300;
}
break;
case 7:
if(total+3>20)
{
break;
}
else
{
System.out.println("CS1008 Database Implementation ");
total+= 3;
cost+=300;
}
break;
case 8:
if(total+3>20)
{
break;
}
else
{
System.out.println("CS1009 System Security ");
total+= 3;
cost+=300;
}
break;
case 9:
if(total+3>20)
{
break;
}
else
{
System.out.println("CS1010 Software Testing ");
total+= 3;
cost+=300;
}
break;
case 10:
if(total+3>20)
{
break;
}
else
{
System.out.println("NA1001 Culture and Social ");
total+= 2;
cost+=200;
}
break;
}
}
System.out.println("");
System.out.println("Total credit hour for this semester is "+total);
System.out.println("");
System.out.println("Registration slip of ABC's College Registration Course ");
System.out.println("");
for(int i=0;i<CourseOffer.size();i++)
{
System.out.println(""+CourseOffer.get(i) );
}
System.out.print("Total student payment : RM");
System.out.printf("%.2f",cost);
System.out.println("\nPlease enter 1 to continue and 0 to exit: ");
option=kb.nextInt();
}while(option==1);
}
}
答案 0 :(得分:1)
您正在突破switch
声明,而不是loop
。也许创建一个boolean
变量并将其设置为true
,如果它应该break
loop
,然后switch
语句检查变量以查看它&# 39; s true
如果是另一个break
...
答案 1 :(得分:1)
更改
while(choose != 99)
{
到
myLoop:
while(choose != 99)
{
&安培;在开关块内,您可以使用
突破循环break myLoop;
答案 2 :(得分:0)
为什么不这样做:
while(choose != 99 && total <= 20){
在循环条件检查中添加条件...