注册 登录
编程论坛 J2EE论坛

求助,如何结束SWITCH结构下的DO-WHILE循环

jack11430 发布于 2009-10-06 22:34, 1314 次点击
import java.util.Scanner;

public class liling33{
    public static void main (String[] args){

        
        
        System.out.println("\t\t\t\t欢迎使用我行我素购物管理系统>真情回馈\n\n");
        System.out.println("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *");
        System.out.println("\t\t\t\t\t1. 幸运大放送\n\n");
        System.out.println("\t\t\t\t\t2. 幸运抽奖\n\n");
        System.out.println("\t\t\t\t\t3. 生日问候\n\n");

        System.out.println("请输入数字:\n\n");
        System.out.println("请选择,输入数字或按0返回上一级菜单\n\n");
        Scanner input =new Scanner (System.in);
        int num=input.nextInt();
        switch(num){
            case 0:
                System.out.println("执行返回上一级菜单\n\n");
                System.out.println("程序结束");
            case 1:

                System.out.println("执行幸运大放送\n\n");
                System.out.println("程序结束");
                break;
            case 2:
   
                System.out.println("执行幸运抽奖\n\n");


                    System.out.println("请输入4位会员号:\n");

                    int custNo=input.nextInt();
                    int qianwei=custNo/1000;
                    int baiwei=custNo%1000/100;
                    int shiwei=custNo%100/10;
                    int gewei=custNo%10;
                    int total;
                    total=qianwei+baiwei+shiwei+gewei;
                    if (total<=20){
                        System.out.println(custNo+"\t\t谢谢您的支持\n\n");
                        }else {
                        System.out.println(custNo+"\t\t是幸运客户,获精美MP3一个。\n\n");
                        }

                    String answer ="y";
                    System.out.println("\n是否继续(y/n)");
                    answer =input.next();
                    do{
                            if (total<=20){
                                System.out.println(custNo+"\t\t谢谢您的支持\n\n");
                            }else {
                                System.out.println(custNo+"\t\t是幸运客户,获精美MP3一个。\n\n");
                            }
                        

                    }while(answer.equals("y"));
                    System.out.println("程序结束");
                break;

            

                    

            case 3:
            
                System.out.println("执行生日问候\n\n");
                System.out.println("程序结束");
                break;

            default:
            
                System.out.println("输入错误。\n\n");
                System.out.println("程序结束");
                break;
               
        }

    }
}

各位大虾,我每次运行程序到:while(answer.equals("y"));按Y都会陷入死循环,请问:如何结束它并输入下一个?????(按N会循环一次)


谢谢!!

7 回复
#2
jack114302009-10-06 22:35
忘了说运行环境了,在J2EE上面。
呵呵,我刚学的。
#3
freish2009-10-07 17:32
只要别人输入y了,你的循环就开始了,然而你在循环里却没有改变y值,当然会死循环
#4
jack114302009-10-08 22:56
是不是可以用CONTINUE跳出循环?
#5
gameohyes2009-10-08 23:50
CONTINUE的作用可以理解成起到个过滤的作用。
#6
gameohyes2009-10-08 23:56
你的do放错位置咯。
do{
    //你想要的循环体        

}while(条件);
#7
gameohyes2009-10-08 23:57

    String answer = "y";
        while (answer.equals("y")) {
            System.out.println("请输入您的会员号: ");
            int vip = input.nextInt();
            int gewei = vip % 10;
            int shiwei = vip / 10 % 10;
            int baiwei = vip / 100 % 10;
            int qianwei = vip / 1000;
            int sum = gewei + shiwei + baiwei + qianwei;
            if (sum > 20) {
                System.out.println("恭喜您中奖了。请去领奖,精美MP3一个哦。\n\n");
 
            } else {
                System.out.println("感谢您的支持!欢迎下次再来!\n\n");
 
            }
            System.out.println("是否继续(y/n)");
            answer = input.next();
        }
      
#8
包涵2012-01-25 15:47
import java.util.Scanner;
 
public class A{
     public static void main (String[] args){
 
        
         
         System.out.println("\t\t\t\t欢迎使用我行我素购物管理系统>真情回馈\n\n");
         System.out.println("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *");
         System.out.println("\t\t\t\t\t1. 幸运大放送\n\n");
         System.out.println("\t\t\t\t\t2. 幸运抽奖\n\n");
         System.out.println("\t\t\t\t\t3. 生日问候\n\n");
 
        System.out.println("请输入数字:\n\n");
         System.out.println("请选择,输入数字或按0返回上一级菜单\n\n");
         Scanner input =new Scanner (System.in);
         int num=input.nextInt();
         switch(num){
             case 0:
                 System.out.println("执行返回上一级菜单\n\n");
                 System.out.println("程序结束");
                 break;
             case 1:
 
                System.out.println("执行幸运大放送\n\n");
                 System.out.println("程序结束");
                 break;
             case 2:
                 String answer ="y";
                 
                System.out.println("执行幸运抽奖\n\n");
                   do{

                    System.out.println("请输入4位会员号:\n");
                    int custNo = input.nextInt();

                  
                  
                     int qianwei=custNo/1000;
                     int baiwei=custNo%1000/100;
                     int shiwei=custNo%100/10;
                     int gewei=custNo%10;
                     int total;
                     total=qianwei+baiwei+shiwei+gewei;
               if (total<=20){
                         System.out.println(custNo+"\t\t谢谢您的支持\n\n");
                         }else {
                         System.out.println(custNo+"\t\t是幸运客户,获精美MP3一个。\n\n");
                        }
                  
                  
                  
 
                    }while(answer.equals("y"));
                     System.out.println("\n是否继续(y/n)");
                     answer =input.next();
                     System.out.println("程序结束");
                     
                 break;
 
            
               
 
            case 3:
            
                 System.out.println("执行生日问候\n\n");
                 System.out.println("程序结束");
                 break;
 
            default:
            
                 System.out.println("输入错误。\n\n");
                 System.out.println("程序结束");
                 break;
                 
        }
 
    }
 }
1