Форум программистов, компьютерный форум CyberForum.ru

Цикл for - C++

Восстановить пароль Регистрация
 
mister2010
0 / 0 / 0
Регистрация: 23.05.2010
Сообщений: 64
25.05.2010, 01:24     Цикл for #1
Не могу понять как работает программа, объясните её логику.
Код
#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
    setlocale(0, "");
    bool salo;
	int num=14;
	for(int i=2; i<=num/i; i++){
              if((num%i)==0)
              {
              salo = false; break;

             }
	}
      if(salo) cout<<"Простое";
      else cout<<"Не простое";
	  getch();
  }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2010, 01:24     Цикл for
Посмотрите здесь:

Цикл с параметром и цикл с условием C++
Цикл while (на С) C++
C++ Цикл for/Цикл while Помогите срочно пожалуйста...
C++ Цикл
C++ Изменить цикл for на цикл do-while
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Crudelis
Шаровик затейник
 Аватар для Crudelis
668 / 410 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
25.05.2010, 01:48     Цикл for #2
Цитата Сообщение от mister2010 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
 setlocale(0, "");
 bool salo;
 int num=14;
 for(int i=2; i<=num/i; i++){
 if((num%i)==0)//деление числа по модулю, i меняется от 2 до 14ти если число делится без остатка то это 1 - тру, иначе фолс
 {
 salo = false; break;// как только мы получаем фолс выходим из цикла и выводим что сало не простое
}
 }
 if(salo) cout<<"Простое";
 else cout<<"Не простое";
 getch();
 }
вот я одного не могу понять это смысл программы) как только деление по модулю будет равно 0 выходим из цикла и получаем сало не простое....
mister2010
0 / 0 / 0
Регистрация: 23.05.2010
Сообщений: 64
25.05.2010, 02:09  [ТС]     Цикл for #3
Почему только 1 вывод и всё?
Логика вывода такая?
а) фор(2<7 ) да Остаток от деления 14/2 = 0 выходим из цикла и идём на след. итерацию
б) фор(3<7 ) да Остаток от деления 14/3 = 2 выводим слово простое
в) фор(4<7 ) да Остаток от деления 14/4 = 2 выводим слово простое
и так до 7, почему это всё не выводится, а выводится только 1 строка?
Crudelis
Шаровик затейник
 Аватар для Crudelis
668 / 410 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
25.05.2010, 02:17     Цикл for #4
Цитата Сообщение от mister2010 Посмотреть сообщение
а) фор(2<7 ) да Остаток от деления 14/2 = 0 выходим из цикла и идём на след. итерацию
здесь мы получим на экране Не простое и выйдем с цикла.
salo = false; break; - закончит цикл
mister2010
0 / 0 / 0
Регистрация: 23.05.2010
Сообщений: 64
25.05.2010, 02:36  [ТС]     Цикл for #5
Цитата Сообщение от Crudelis Посмотреть сообщение
здесь мы получим на экране Не простое и выйдем с цикла.
salo = false; break; - закончит цикл
Первая итерация. 2<7 14/2=0 Первая итерация понятно, что ничего не выводит потому-что брик ,а брик потому-что остаток от деления ноль у нас получился,но за 2-ой итерацией
3<7 Да, меньше. 14/3=Остаток 2. Тогда должно вывестись каутом результат Не простое(1раз должно вывестись)
3-ая итерация 14/4=тоже остаток 2, 2ой раз должно вывестись не простое
4-ая итерация 14/5= остаток 4, 3-ий раз должно вывестись не простое
и так до 7-ой итерации, почему только 1 вывод?
Crudelis
Шаровик затейник
 Аватар для Crudelis
668 / 410 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
25.05.2010, 02:42     Цикл for #6
mister2010, вы пробывали запускать программу? ну и что выводит? я ещё раз повторюсь как только цикл увидет break для него прекратятся все итерации, вообще для цикла всё прекратиться и программа продолжит свой ход уже после цикла.

т.е. как только будет 2<7 14/2=0 дальше не будет никаких итераций выполнится код после цикла
а именно отработает else cout<<"Не простое";
далее getch(); и конец программы
mister2010
0 / 0 / 0
Регистрация: 23.05.2010
Сообщений: 64
25.05.2010, 02:48  [ТС]     Цикл for #7
Значит эта программа работает только 1-ну итерацию?
Первый раз попало на брик, и пошло вниз из акончилась?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2010, 12:01     Цикл for
Еще ссылки по теме:

C++ Цикл: цикл for вообще никак не воспринимается транслятором
C++ Почему цикл на при 1 уходит в бесконечный цикл?
Задание на цикл с параметром и цикл с постусловием C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Crudelis
Шаровик затейник
 Аватар для Crudelis
668 / 410 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
25.05.2010, 12:01     Цикл for #8
mister2010, да вы совершенно правы, уберите брик у будут все итерации
Yandex
Объявления
25.05.2010, 12:01     Цикл for
Ответ Создать тему
Опции темы

Текущее время: 12:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru