中断交换机中的if语句不起作用

时间:2015-12-02 16:21:49

标签: java

/ 当我运行程序时。在切换中的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);           
    }
}

3 个答案:

答案 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){

在循环条件检查中添加条件...