Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2023, 05:20   #1
Maikl68
Пользователь
 
Регистрация: 05.03.2023
Сообщений: 31
Вопрос Понять код

Код:
public class Main {
	public static void main(String[] args) {
		for(int i=0;i<10;){
			if(i<5){
				i=i+1;
			}
			i=i+1;
			System.out.println("рим");
		}

	}
}
Как думаю я : пока I<5 печатаю "рим" 5 раз(цикл if пропускаю) ,затем по циклу for допечатывю до 9.
А код мне печатает 7 раз.
Вот ,чешу репу ,где я ему сказал ,что б 7 раз печатал?
Maikl68 вне форума Ответить с цитированием
Старый 13.03.2023, 06:17   #2
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Правильно он печатает. Потому что if это не цикл.

В целом выполнится следующее
Код:
			i=0; // i = 0
			if(0<5){
				i=0+1; // i = 1
			}
			i=1+1; // i = 2
			System.out.println("рим1");
			if(2<10) {
				break; // пропускаем
			}
			if(2<5) {
				i=2+1; // i = 3
			}
			i=3+1; // i = 4
			System.out.println("рим2");
			if(4<10) {
				break; // пропускаем
			}
			if(4<5){
				i=4+1; // i = 5
			}
			i=4+1; // i = 6
			System.out.println("рим3");

			if(6<10) {
				break; // пропускаем
			}
			if(6<5){
				i=6+1; // пропускаем
			}
			i=6+1; // i = 7
			System.out.println("рим4");

			if(7<10) {
				break; // пропускаем
			}
			if(7<5){
				i=7+1; // пропускаем
			}
			i=7+1; // i = 8
			System.out.println("рим5");

			if(8<10) {
				break; // пропускаем
			}
			if(8<5){
				i=8+1; // пропускаем
			}
			i=8+1; // i = 9
			System.out.println("рим6");

			if(9<10) {
				break; // пропускаем
			}
			if(9<5){
				i=9+1; // пропускаем
			}
			i=9+1; // i = 10
			System.out.println("рим7");

			if(10<10) {
				break; // прервали for
			}
Вот что делает эта программа, если развернуть циклы
Я пронумеровал вывод для наглядности
macomics вне форума Ответить с цитированием
Старый 13.03.2023, 07:47   #3
Maikl68
Пользователь
 
Регистрация: 05.03.2023
Сообщений: 31
По умолчанию

i=0; // i = 0
if(0<5){
i=0+1; // i = 1
}
i=1+1; // i = 2
System.out.println("рим1");
if(2<10) {
break; // пропускаем
}
if(2<5) {
i=2+1; // i = 3
}
i=3+1; // i = 4
System.out.println("рим2");
if(4<10) {
break; // пропускаем
}
if(4<5){
i=4+1; // i = 5 \\4+1=5
}
i=4+1; // i = 6 \\ 4+1 =6 ?
System.out.println("рим3");

if(6<10) {
break; // пропускаем
}
if(6<5){ 6<5 false и программа не должна производить
вычисления в данном блоке ?
i=6+1; // пропускаем
}
i=6+1; // i = 7
System.out.println("рим4");

if(7<10) {
break; // пропускаем
}
if(7<5){ false
i=7+1; // пропускаем
}
i=7+1; // i = 8
System.out.println("рим5");

if(8<10) {
break; // пропускаем
}
if(8<5){ false
i=8+1; // пропускаем
}
i=8+1; // i = 9
System.out.println("рим6");

if(9<10) {
break; // пропускаем
}
if(9<5){ false
i=9+1; // пропускаем
}
i=9+1; // i = 10
System.out.println("рим7");

if(10<10) {
break; // прервали for
}
не то что бы придираюсь,просто показываю где непонятно
Maikl68 вне форума Ответить с цитированием
Старый 13.03.2023, 07:59   #4
Maikl68
Пользователь
 
Регистрация: 05.03.2023
Сообщений: 31
По умолчанию

macomics, Спасибо.Не сразу ,но вроде ,дошло.
Maikl68 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль: Помогите понять основу для написания простейшей программы. Не могу понять суть. romanya Паскаль, Turbo Pascal, PascalABC.NET 2 18.03.2016 20:35
Как это понять 10-^5 pompiduskus Свободное общение 6 21.11.2015 21:20
Не могу понять что за CMS star007 WordPress и другие CMS 5 19.10.2015 20:18
Как понять код Lepton Visual C++ 1 13.01.2012 17:56
Как это понять?!!! sPan4eZ Общие вопросы Delphi 0 29.10.2009 17:09