#c
#c
Вопрос:
Когда я запускаю этот код, он повторяется, но затем возвращает «Ответ равен 0», хотя должен быть «Ответ равен 10».
Почему это?
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[])
{
int i;
for (int i = 0; i < 12; i ){
if (i % 3 == 0) {
continue;
}
printf("Checking i = %dn", i);
if (i 90 == i * i) {
break;
}
}
printf("The answer is %d.n", i);
return 0;
}
Ответ №1:
int i;
for (int i = 0; i < 12; i ){
^^^^^
i
Внутри цикла не совпадает с i
внешним циклом.
Замените это на:
int i;
for (i = 0; i < 12; i ){
Ответ №2:
В вашем коде есть два отдельных i
кода, внутренний из которых скрывает внешний. Более того, оператор print вызывает неопределенное поведение, потому что внешний i
неинициализированный для чтения.
Скажем, for (i = 0; i < 12; i )
использовать внешнюю переменную вместо объявления новой переменной.
Ответ №3:
На самом деле вы i
снова объявляете внутри for
цикла. Сделайте свой цикл for следующим образом:
for (i = 0; i < 12; i )
Затем он сохранит свое значение после выхода из цикла.
Ответ №4:
В вашем коде объявлены два отдельных int i
‘s.
Ответ №5:
Если вы хотите использовать i вне цикла for, не объявляйте его внутри цикла for
Итак, ваш цикл for должен быть похож
for (i = 0; i < 12; i )