qq_43703923 2022-12-08 22:06 采纳率: 100%
浏览 45
已结题

如何从键盘输入一个正整数n(如果输入数据不符合要求,提醒用户重新输入,直到满足要求为止,求解1-n之间所有奇数的和。请使用循环语句实现?

如何从键盘输入一个正整数n(如果输入数据不符合要求,提醒用户重新输入,直到满足要求为止,求解1-n之间所有奇数的和。请使用循环语句实现?
这个是哪里的问题? 输入double类型,进入一个死循环?

System.out.println("请输入正整数:");
        int sum=0;
        int flag=1;
        do{
            if(scanner.hasNextInt()){
                int a=scanner.nextInt();
                if(a>0){
                    for(int i=1;i<=a;i+=2){
                        sum+=i;
                    }
                }else {
                    flag=0;
                    System.out.println("请重新输入");

                }
            }else {

                flag=0;
                System.out.println("请重新输入:");
            }


        }while (flag==0);
        scanner.close();
        System.out.println(sum);

1.

  • 写回答

1条回答 默认 最新

  • Huazie 全栈领域优质创作者 2022-12-08 22:14
    关注

    输入 小数,scanner.hasNextInt() 那里 永远不成立,所以 一直是flag = 0,也就死循环了

    img

    帮你改了一下,参考如下:

        public static void main(String args[]) {
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入正整数:");
            int sum=0;
            int flag;
            do{
                String str = scanner.next();
                try {
                    int a = Integer.parseInt(str);
                    if(a>0){
                        for(int i=1;i<=a;i+=2){
                            sum+=i;
                        }
                        flag=1;
                    }else {
                        flag=0;
                        System.out.println("请重新输入");
                    }
                }catch (Exception e) {
                    flag=0;
                    System.out.println("请重新输入:");
                }
    
            }while (flag==0);
            scanner.close();
            System.out.println(sum);
        }
    

    img


    如有帮助,欢迎采纳哈!

    在这里插入图片描述

    本人的开源项目,欢迎star支持下!!!

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

报告相同问题?

问题事件

  • 系统已结题 12月17日
  • 已采纳回答 12月9日
  • 创建了问题 12月8日

悬赏问题

  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改