2015-09-25 2 views
-2

Идея заключается в том, чтобы научиться применять различные методы к той же проблеме, чтобы узнать и увидеть различияКак я могу написать этот же оператор, используя для циклов вместо циклов?

Scanner input = new Scanner(System.in); 
System.out.print("Enter an integer value-> "); 
int k = input.nextInt(); 
input = new Scanner(System.in); 
System.out.print("Enter a larger value-> "); 
int j = input.nextInt(); 
int i = k; 

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

Я пытаюсь, но это явно не так, как я могу это исправить, или где я должен смотреть?

 for(i<=j;i % 2 ==0;i++) 
     { 
     System.out.println(i); 
     }}   
+1

Просьба отложить ваш код в будущем - это делает его * намного более легким для чтения. –

+3

вы действительно не знаете, как перевести это в цикл for? что вы пробовали? – Stultuske

+1

Подумайте, что у вас есть, цикл for содержит три части. Первая часть - это объявление переменной. Вы можете поместить переменную, которую вы используете внутри цикла. вторая часть - это условие, которое у вас уже есть. Часть las содержит операцию, которая должна выполняться после каждой итерации. Подумайте, что последнее, что вы делаете в своем цикле while. Просто объедините три части, которые у вас уже есть в трех частях, и вы изменили время на цикл for. – SomeJavaGuy

ответ

2

При выполнении преобразования из одного цикла в другой, это будет намного проще, если мы сначала поймем намерение исходного цикла. От , что у вас есть:

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

В простом английском, это означает: Из нижней границы ввода в верхней границы ввода, распечатать все четные номера (включая нули).

Теперь, основываясь на этом, мы пишем for-loop.

for(int x=k, x<=j; x++) //k is lower bound, j is upper bound 
    if(x % 2 == 0)  //if current number is even or 0 
     System.out.println(x); //print that number 
+1

спасибо, я боролся за понимание, но ваш ответ помог! – hhhh

+1

@mariaandreaerramouspe Если у вас есть больше сомнений, сообщите мне, оставив его в комментариях. Если все понятно, вы можете принять решение. – user3437460

+0

большое вам спасибо! – hhhh

1
for (int i = k; i <= j; i++) { 
    if (i%2 ==0) { 
    System.out.println(i); 
    } 
} 
+0

Мне нравится, как люди голосуют за ответ, но даже не пытаются помочь или хотя бы сказать что-то полезное – hhhh

1
Scanner input = new Scanner(System.in); 
System.out.print("Enter an integer value-> "); 
int k = input.nextInt(); 
input = new Scanner(System.in); 
System.out.print("Enter a larger value-> "); 
int j = input.nextInt(); 
int i = k; 

for (;i <= j;i++) { 
    if (i%2 == 0) { 
    System.out.println(i); 
    } 
} 

Перевод в течение цикла.

+0

ohhh я думал, что остальное нужно зайти внутрь для ..... – hhhh

+0

большое вам спасибо !!!!!!! – hhhh

Смежные вопросы