timi先生 2020-06-07 15:54 采纳率: 50%
浏览 224
已采纳

不会就问系列,使用键盘输入数字并计算总和,直至用户输入词语“总和”为止。

public class Solution {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
int i = 0;
int sum = 0;
while (true){

        String s = sc.nextLine();
        if (s.equals("总和")){
            int k = Integer.parseInt(s);
            sum +=k;
            System.out.println(sum);
            break;
        }
        else {
            int j = Integer.parseInt(s);
            i+=j;
            System.out.println(i);
        }
    }



}

}
1.程序必须从键盘读取数据。
2.用户输入词语“总和”并按 Enter 键之后,程序应停止从键盘读取数据。
3.如果用户输入一个数字和词语“总和”,程序应正常运行。
4.如果用户输入两个数字和词语“总和”,程序应正常运行。
5.如果用户输入两个以上的数字和词语“总和”,程序应正常运行。
6.程序应在屏幕上显示文本.
我的程序哪里出错了,为什么只能满足前两个条件。求大佬告知!

  • 写回答

1条回答 默认 最新

  • syyyyyyyyyyyyyyh 2020-06-07 16:15
    关注

    int k = Integer.parseInt(s);,这句话是把字符串类型的数据转换为Integer,如果s为总和,那么这个s数据不是"123"之类的数值字符串,所以会格式转换错误,把if里的这句话删掉

    Scanner sc = new Scanner(System.in);
    
            int sum = 0;
            while (true){
                String s = sc.nextLine();
                if (s.equals("总和")) {
                    System.out.println(sum);
                    break;
                }           
                sum+=Integer.parseInt(s);              
                System.out.println(sum);           
            }
    

    帮你修改了下

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?