2015-12-21 5 views
1

Это программа, которая выводит все четные числа между любым заданным целым числом.Почему он не распечатывает 0? Beginner query

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, а также, так как мой в то время как оператор содержит I! = -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); 
} 

?