[英]Why does my code only execute once
我想打印所有的偶数,但是只给我0!
public class DataType {
public static void main(String[] args){
int number=0;
int max=20;
do{
System.out.println("this is an even number"+ number);
number++;
}while(number<=max&&EvenNumber(number));
}
public static boolean EvenNumber(int a)
{
if((a%2)==0)
{
return true;
}else
return false;
}
}
这就是您的条件所陈述的:在两个条件都满足时执行!,第一次执行number ++之后,条件的左侧返回false,循环就完成了!
您的意思是肯定的:
do {
if (isEvenNumber(number)) {
System.out.println("this is an even number" + number);
}
number++;
} while (number <= max);
记住,下面的代码意味着
while(number <= max && EvenNumber(number))
当两个条件都满足时...
在number++;
之后number++;
, number
变为1
,因此条件变为false
,循环终止。
我想,你想做
do {
if (isEvenNumber(number)) System.out.println(number);
number++;
} while(number<=max);
因为在您的代码中,如果number等于1,而条件为false
如果您打算查找[0, 20]
之间的所有偶数[0, 20]
可以将代码更改为以下版本:
public static void main(String[] args) {
int max=20;
for (int number = 0; number <= max; number++) {
if (number % 2 == 0) {
System.out.printf("%d is an even number.\n", number);
}
}
}
内容如下:
因为在第二次迭代中,循环将退出。 如果要打印偶数,则代码应为
do{
if(EvenNumber(number)) {
System.out.println("this is an even number"+ number);
}
number++;
}while(number<=max );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.