2015-12-21 102 views
1

這是一個打印出任何給定整數之間的所有偶數的程序。爲什麼不打印出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。爲什麼不將其打印0爲好,因爲我的while語句包含了我!= -2 0計爲偶數?

回答

0

因爲在scanner.nextInt();之後,您必須放scanner.nextLine();否則,掃描儀從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); 
}