Java 为什么我的代码只执行一次

Java 为什么我的代码只执行一次,java,Java,我想打印所有的偶数,但它只给我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(

我想打印所有的偶数,但它只给我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;       
}


}
公共类数据类型{
公共静态void main(字符串[]args){
整数=0;
int max=20;
做{
System.out.println(“这是一个偶数”+数字);
数字++;

}while(number这是您的条件声明:在两个条件都满足时执行!在第一次执行number++后,条件左侧返回false,循环完成

你的意思是肯定的:

    do {
        if (isEvenNumber(number)) {
            System.out.println("this is an even number" + number);
        }
        number++;
    } while (number <= max);
do{
如果(isEvenNumber(编号)){
System.out.println(“这是一个偶数”+数字);
}
数字++;

}而(number在
number++;
之后,
number
变为
1
,因此条件变为
false
,循环终止

我猜,你想这么做

do {
    if (isEvenNumber(number)) System.out.println(number);
    number++;
} while(number<=max);
do{
if(isEvenNumber(编号))系统输出打印项次(编号);
数字++;

}while(number因为在您的代码中,如果number等于1,而条件为false

如果您打算查找
[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);
        }
    }
}
publicstaticvoidmain(字符串[]args){
int max=20;

对于(int number=0;number,因为在第二次迭代中循环将退出。 如果要打印偶数,则代码应为

do{
    if(EvenNumber(number)) {
        System.out.println("this is an even number"+ number);
    }
    number++;
}while(number<=max );
do{
if(偶数(数字)){
System.out.println(“这是一个偶数”+数字);
}
数字++;

}当(数字因为在第一次执行后,
number
将是1,所以您的
EvenNumber
检查将返回false。下次附加一个调试器。@Kon您的意思是*1,右在整数算术中,偶数永远不会连续;它们总是与奇数间隔。如果您将
1
添加到任何偶数,您将得到奇数那么,一旦我在do while循环中的条件语句为false,它会使整个循环停止吗?
do{
    if(EvenNumber(number)) {
        System.out.println("this is an even number"+ number);
    }
    number++;
}while(number<=max );