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

Java多逻辑运算符的三重条件Do-While循环无法运行求助

解决你的Java do-while循环问题

嘿,我一眼就看出问题出在哪啦——你的循环条件写反了!咱们先理清楚需求和do-while的核心逻辑:

你的明确需求是:

  • 当x和y同时为-1,或者x=5,或者y=10时,终止循环
    而do-while的规则是:只要while后的条件为true,就会重复执行循环体

你现在写的条件是把「终止条件」当成了「继续循环的条件」,这完全搞反了!比如当x=5时,你的while条件会返回true,循环就会一直跑下去根本停不下来,这肯定不是你想要的结果。

正确的循环条件

我们需要把终止条件取反,也就是当不满足任何终止条件时,继续循环。用代码写出来是这样的:

do {
    // 用户输入x和y的逻辑
} while( !( (x == -1 && y == -1) || x == 5 || y == 10 ) );

拆解一下逻辑

  • 括号里的(x == -1 && y == -1) || x == 5 || y == 10就是你的终止条件集合,只要满足其中任意一条,就该停止循环
  • 前面加!取反,意思就是「只要不满足任何终止条件,就继续执行循环体」,完美匹配你的需求:
    • 当x和y都是-1 → 终止条件为true → 取反后为false → 循环终止
    • 当x=5或y=10 → 终止条件为true → 取反后为false → 循环终止
    • 其他所有情况 → 终止条件为false → 取反后为true → 循环继续

完整示例代码

如果加上输入逻辑,完整代码可以写成这样:

import java.util.Scanner;

public class LoopDemo {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int x, y;
        
        do {
            System.out.print("请输入x的值:");
            x = input.nextInt();
            System.out.print("请输入y的值:");
            y = input.nextInt();
        } while( !( (x == -1 && y == -1) || x == 5 || y == 10 ) );
        
        System.out.println("循环已终止!");
        input.close();
    }
}

你可以试试这段代码,完全符合你提出的两个终止规则~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:17:55