为什么它不会打印出 0?初学者查询



这是一个打印任何给定整数之间所有偶数的程序。

import java.util.*;
public class Question1
{
    private int i;
    public static void main(String[] args)
    {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Give me a number!");
        int i = scanner.nextInt();
        if ((i % 2) != 0)
        {
            i = i - 1;
            do
            {
               System.out.println(i);
               i = i - 2;
            } while (i != -2);
        }
    }
}

所以,如果我给数字11,它会打印出10、8、6、4、2。既然while语句包含i,为什么它不打印0呢!=-2和0算偶数?

因为在scanner.nextInt();之后必须放入scanner.nextLine(); else,所以扫描仪从nextInt();获得的最后一个元素将被忽略。

即便如此,你的算法还是非常令人眩晕。为什么不试试:

Scanner in = new Scanner( System.in );
int number = in.nextInt(); in.nextLine();
for( int i = 0; i <= number; i += 2 ) {
    System.out.println( i );
}

最新更新