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
相关产品推荐
相关产品推荐

