java - switch 中的 if 语句中断不起作用

标签 java

/当我运行程序时。在 switch 中的 if 语句中添加学分后,总学分超过 20 分后,loop/switch 不会跳出循环。它继续运行,添加制作人员。需要修复什么?/

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);           
    }
}

最佳答案

改变

while(choose != 99)
{

myLoop:
while(choose != 99)
{

& 在 switch block 内,您可以使用

打破循环
break myLoop;

关于java - switch 中的 if 语句中断不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34047712/

相关文章:

java - Neo4j 中有 `Neo.ClientError.Statement.InvalidType`

Java比较带哈希和不带哈希的字符串

java - 如何使 Eclipse Java 将项目依赖项设置为解决方案项目而不是引用 JAR

java - 从 long 转换为 string 时保留前导零

java - 如何使用 GridBagLayout 将标签和文本字段链接在一起?

java - XML格式验证

java - 将相机置于物体中心

java - 有关 Java 数组的帮助 : Saving to output file

java - 用于串行通信的Python字节数组

java - Java 中的 NamedTuple 替代方案是什么?