gpt4 book ai didi

java - 对 boolean 结果的误解

转载 作者:行者123 更新时间:2023-11-30 07:39:47 25 4
gpt4 key购买 nike

有人可以帮我一下吗?我很难理解为什么这里的 Boolean 不能按我想要的方式工作。这个想法是当 i(firstnum) 是奇数时,l(lastnum) 是相等的,反之亦然。一些关于如何使用 boolean 值的帮助也将是一个帮助,我无法理解。

输入 3 和 5。

预期输出:4333 4353 4443 4533 4553 5334 5354 5444 5534 5554

实际输出:4333 4353 4443 4533 4553 5333 5334 5353 5354 5443 5444 5533 5534 5553 5554

int startNum = Integer.parseInt(scan.nextLine());
int endNum = Integer.parseInt(scan.nextLine());

boolean isItEqual = false;
boolean isItOdd= false;

int countDebugOperations = 0;
for (int i = startNum; i <=endNum ; i++) {

if (i % 2==0){
isItEqual =true;
}
for (int j = startNum; j <=endNum ; j++) {
for (int k = startNum; k <=endNum ; k++) {
for (int l = startNum; l <=endNum ; l++) {
if (l % 2 == 1){
isItOdd = true;
}
boolean flag =(i > l) && (j+k) % 2 ==0;

if(!isItEqual && (!isItOdd) && flag){

countDebugOperations+=1;
System.out.printf("%d%d%d%d ",i,j,k,l);

}
if (isItEqual && isItOdd && flag) {
countDebugOperations += 1;
System.out.printf("%d%d%d%d ", i, j, k, l);

}

最佳答案

您正尝试在两种情况下打印数字 ijkl:

  1. i是偶数时AND l是奇数
  2. l是偶数时AND i是奇数

如果我们将这些案例转化为代码( boolean 表达式),我们会得到:

  1. i % 2 == 0 && l % 2 == 1
  2. l % 2 == 0 && i % 2 == 1

现在,当我们遍历 for 循环时,我们可以询问我们的“数字状态”是否匹配这两种情况之一(第一种情况 OR 第二种情况)。

int startNum = Integer.parseInt(scan.nextLine());
int endNum = Integer.parseInt(scan.nextLine());

for (int i = startNum; i <= endNum; i++) {
for (int j = startNum; j <= endNum; j++) {
for (int k = startNum; k <= endNum; k++) {
for (int l = startNum; l <= endNum; l++) {

boolean firstCase = i % 2 == 0 && l % 2 == 1;
boolean secondCase = l % 2 == 0 && i % 2 == 1;

// now when we print, we can ask if we are in the first OR the second case
if (firstCase || secondCase) {
System.out.printf("%d%d%d%d ",i,j,k,l);
}
}
}
}
}

关于java - 对 boolean 结果的误解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59058614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com