2012-04-24 2 views
-3

Может ли кто-нибудь объяснить, почему ответы - это то, что они хотят? Первый из них я предполагаю, потому что условие остановки уже достигнуто, поэтому оно пропускает утверждение, но вопрос 13, почему он не печатает 4321?Для петель и условий остановки

12.What продукция производится следующим кодом:

int n; 
for (n = 1; n > 4; n++) 
    System.out.print(n); 

а) 12345

б) +1234

с) 0 ---> цикл никогда не работает, потому что состояние остановки уже выполнено.

д) Это не производит никакого вывода *

13.Что продукция производится следующим кодом:

int n; 
for (n = 4; n > 0; n--); 
    System.out.print(n); 

а)

б) 4321

гр) 0 * ---> цикл после двоеточия после цикла, заставляя оператор печати работать после завершения цикла

d) Он не производит выход

+10

Вам лучше послушать своего учителя, а не играть на Angry Birds на вашем iPhone :) – sp00m

+2

Если это домашнее задание, оно должно быть помечено как таковое;) – Paaske

+1

Множество учителей/профессора повторно используют вопросы от викторин и экзаменов. Вы уверены, что ваш учитель не возражает против публикации вопросов и ответов в Интернете? –

ответ

2

Что касается вопроса 13: есть точка с запятой позади петли. Из-за этого цикл сначала будет выполняться до тех пор, пока n не будет> 0 => тогда оно равно нулю. Затем печать покажет нуль.

+0

Ничего себе, смотрел на этот вопрос в течение 10 минут и никогда не замечал этого. Благодарю. – Batman

+0

Хорошо! Не забудьте отметить свой вопрос как «ответил» и т. Д. –

+0

@Batman вы установили его для ответа, нажав галочку рядом с ответом, который вам подходит. (не меняя название :)) –

0

Первый не будет выдавать выходной сигнал, поскольку тело цикла цикла никогда не запускается (предполагается, что линия печати находится внутри цикла for). Второй, кажется, ничего не делает в цикле for и просто печатает значение n после цикла. Какой бы 0, как это только что провалил тест на время больше 0.

+0

Теперь я понимаю, спасибо. – Batman

0

В Вопрос 13:

for (n = 4; n > 0; n--);

цикл выполняется непосредственно. Таким образом, он просто уменьшает значение n и не вводит в следующий оператор до тех пор, пока не завершит его выполнение. Итак, здесь он не приходит к заявлению до, он завершает его выполнение. В Конце стоимости выполнения п равно 0. Таким образом, когда речь идет о заявлении

System.out.print(n);

значение п 0, поэтому выход из программы 0

0

В вопрос 13) есть; после цикла for это означает, что программа ничего не делает (n--) 4 раза. Это приводит к тому, что значение n становится 0.

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