新梓生 2024-11-09 17:18 采纳率: 100%
浏览 2
已结题

三位数打印个十百位,怎么在我输入不符合三位数报错

img


三位数是100—999,我输入一个四位数他只是打印了那句话,我再次回车。并没让我重新输入三位数,我想可能我的if语句少了点什么。

img

  • 写回答

1条回答 默认 最新

  • 无疆76 2024-11-09 17:20
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    在你的代码中,问题在于条件判断语句使用的是“|”运算符,这是一个位运算符或者逻辑OR运算符。在你的场景中,它应该被替换为逻辑AND运算符"&&",用来同时检查n小于100和n大于999这两个条件是否同时满足。另外,Java中,"return"语句不能在main方法中直接使用,因为它会结束整个程序的运行。如果你想要在输入不符合条件时结束当前的输入循环,你可能需要用到一个循环结构如while或do-while循环。这是一个修正后的版本:

    import java.util.Scanner;
    
    public class Sws {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            while (true) { // 开始一个无限循环
                System.out.print("请输入一个三位数:");
                int n = sc.nextInt();
                if (n >= 100 && n <= 999) { // 使用逻辑AND运算符来检查条件
                    int hundred = n / 100;
                    int ten = n % 100 / 10;
                    int unit = n % 10;
                    System.out.println("百位数是:" + hundred);
                    System.out.println("十位数是:" + ten);
                    System.out.println("个位数是:" + unit);
                    break; // 如果输入正确,则跳出循环
                } else {
                    System.out.println("那你输入的不是一个三位数,请重新输入:");
                }
            }
        }
    }
    

    这段代码将一直要求用户输入数字,直到用户输入一个三位数为止。如果用户输入的不是三位数,它会提示用户重新输入。当用户输入一个三位数时,它会打印出这个数的百位、十位和个位,然后结束程序的运行。

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

报告相同问题?

问题事件

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