2 qq 21278853 qq_21278853 于 2016.09.20 09:14 提问

请问java中想连续输入,按‘y’结束,这个循环不对,while循环不会判断,能否帮忙看看,谢谢!

Scanner sc = new Scanner(System.in);
System.out.println("请输入卡号,按“y”结束:");

    int custNo;
    int sum = 0;
    do{
        custNo = sc.nextInt();
        sum = sum + custNo;
    }
    while(custNo == 'y');

2个回答

qq_29594393
qq_29594393   Ds   Rxr 2016.09.20 09:28
已采纳

由于y是char类型 ,而这里读取的是整形 ,输入y会报错

    Scanner sc = new Scanner(System.in);
        System.out.println("请输入卡号,按“y”结束:");
            String custNo;
            int sum = 0;
            String y="y";
            do{
                custNo = sc.next();
                if(custNo.equals("y"))
                    break;
                sum = sum + Integer.parseInt(custNo);
            }
            while(true);
            System.out.println("sum="+sum);
u013076997
u013076997   2016.09.20 09:34

有几个问题:
1、custNo你定义的为int类型,而'y'明显是char类型的;两种不同类型的怎么可能会相等呢?
2、你定义了个sum,sum如果没用的话,就不要加了;因为即使你把custNo变成了String类型的值,用于和"y"作判断,但是你要和sum相加,类型转换同样会报错,所以建议把sum去掉;

Csdn user default icon
上传中...
上传图片
插入图片