2015-01-16 13 views
-3

Эта программа работает очень долго и ничего не выводит. Я где-то ошибся, кто-нибудь заметил, как?подсчет целых целых чисел

мне просто нужно это для генерации четных чисел от 1 до 10

class EvenLoop { 

public static void main(String[] args) { 

    int i = 1; 
    int limit = 10; 

    while(i <limit) 
    { 
     if(i % 2==0) 
     { 
     System.out.println("i = " + i); 
     i++; 

     } 
    } 
} 
+3

поставил '' я ++ из 'if' цикла – Bill

+0

получить' 'я ++ из' if'-блока. –

ответ

0

положить я ++ внутри в то время как цикл и вне условия if, чтобы избежать бесконечного цикла.

public static void main(String[] args) { 

    int i = 1; 
    int limit = 10; 

    while(i <limit) 
    { 
     if(i % 2==0) 
     { 
     System.out.println("i = " + i); 
     } 
    i++; // put i++ inside while loop and outside of if 
    } 
} 
0

принять ваш я ++ из если заявление он работает infinetly, потому что я остается 1

while(i <limit) 
    { 
     if(i % 2==0) 
     { 
     System.out.println("i = " + i); 


     } 
    i++; 
    } 
0

Вы зацикливание, пока i не достигает определенного предела, но вы только увеличить i в цикле, если это разделяемая на два. Поэтому он будет бесконечно оставаться на первом числе, которое не делится на два, потому что оно никогда не будет увеличиваться. Вероятно, вам нужен ваш приращение (i++) за пределами вашего if.

while(i <limit) { 
    if(i % 2 == 0) { 
     System.out.println("i = " + i); 
    } 

    i++; 
} 
0

Вы увеличиваете «i» в инструкции if.

Вы начинаете с 1 & никогда не войдете в if, чтобы увеличить i.

0

Существовали несколько поправок следующим образом:

class EvenLoop { 

    public static void main(String[] args) { 

    int i = 1; 
    int limit = 10; 

    while (i < limit) { 
     if (i % 2 == 0) { 
     System.out.println("i = " + i); 
     } 
     i++;//outside if 
    } 
    } 
}// missing closing bracket 
0
public class EvenLoop { 
    public static void main(String[] args) { 
     int start = 1; 
     int limit = 10; 
     for (int i = start + start % 2; i <= limit; i += 2) { 
      System.out.printf("i = %d%n", i); 
     } 
    } 
} 
Смежные вопросы