You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java while循环rows<=12条件始终判定为true,未正常触发校验原因求解

问题根因

你写的while循环的逻辑运算符和判断规则完全写反了,具体错误如下:

  • 逻辑运算符使用错误:你用了&&(逻辑与),该运算符只有左右两个条件同时为真时,整体表达式才为真。你写的条件是rows < 5 && rows <=12,只要rows <5成立,必然满足rows <=12,第二个条件不会起到任何校验作用;如果rows >=5,&&会直接短路不判断第二个条件,这就是你遇到的第二个条件不触发的原因。
  • 循环逻辑写反:while循环的规则是条件为真时执行循环体,你的需求是「输入不在5~12的合法区间时,重复提示用户输入」,合法区间的判断是rows >=5 && rows <=12,对应的非法区间应该是rows <5 || rows >12,需要用||(逻辑或)连接两个非法条件。
修正后的代码
package com.company;
import java.util.*;

public class Main {

    public static void main(String[] args) {
        int rows;
        Scanner myObj = new Scanner(System.in);
        System.out.print("Enter rows between 5 and 12 inclusive :  ");
        rows = myObj.nextInt();

        // 仅修改此处判断条件即可
        while (rows < 5 || rows >12){
            System.out.print("Enter rows between 5 and 12 inclusive :  ");
            rows = myObj.nextInt();
        }
        System.out.println("you can proceed now!");
    }
}
修正后逻辑说明

当用户输入的行数小于5,或者大于12时,循环条件成立,会再次提示用户输入,直到输入落在5~12的合法区间,循环条件不成立,退出校验逻辑。

内容的提问来源于stack exchange,提问作者isfan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 05:06:05