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

цикл for и if - C++

Восстановить пароль Регистрация
 
korez
8 / 8 / 0
Регистрация: 22.02.2011
Сообщений: 179
21.06.2011, 02:35     цикл for и if #1
как сделать проверку && и || в одном if
C++
1
2
3
4
5
for(;i>0; i--)
{
    if(a>0 && (b <0 || c<0 || d<0)
        z=0;
}
куда выходит оператор break?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
for(;i>0; i--)
{
    if(a>0 && (b <0 || c<0 || d<0)
    {   
        z=0;
        for(;i>0;i--)
        {
            break;
        }
    a:
    }
b:
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.06.2011, 02:35     цикл for и if
Посмотрите здесь:

цикл for... C++
Цикл for C++
C++ Цикл
цикл While C++
цикл do - while C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
21.06.2011, 02:42     цикл for и if #2
Цитата Сообщение от korez Посмотреть сообщение
как сделать проверку && и || в одном if
как хотите, только надо учесть что && выше по приоритету чем ||
или расставляйте скобочки

Цитата Сообщение от korez Посмотреть сообщение
куда выходит оператор break?
на метку А при первой же итерации
accept
4837 / 3236 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
21.06.2011, 11:17     цикл for и if #3
Цитата Сообщение от korez
куда выходит оператор break?
завершает цикл, в теле которого находится
относится только к одному циклу
talis
 Аватар для talis
789 / 541 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
21.06.2011, 11:29     цикл for и if #4
Линия 4:
C
1
if(a>0 && (b <0 || c<0 || d<0)
Скобочку закройте. Каждой открывающей скобке должна соответствовать закрывающая.
C
1
if( a>0 && ( b <0 || c<0 || d<0 ) )
korez
8 / 8 / 0
Регистрация: 22.02.2011
Сообщений: 179
21.06.2011, 11:38  [ТС]     цикл for и if #5
talis, а если только или
C++
1
 if (b <0 || c<0 || d<0)
то слева на право будут проверяться операторы?
а если вот так, то сначала || будут проверяться?
C++
1
 if((b <0 || c<0 || d<0) &&  a>0)
talis
 Аватар для talis
789 / 541 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
21.06.2011, 11:43     цикл for и if #6
korez, вспомните математику: допустим, у вас есть выражение:

5 + 2 * 8

В данном случае оно равно 21 ( 2 * 8 = 16; 16 + 5 = 21 ). А если поставить скобки так:

(5 + 2) * 8

То оно уже равно 56 ( 5 + 2 = 7; 7 * 8 = 56 ).

Так же и тут. То, что в скобках, имеет приоритет. Сначала обрабатываются операторы в скобках, потом результат обработки скобок "подставляется" на место скобок и выражение просчитывается дальше. Кроме того, в математике приоритет умножения и деления выше приоритета сложения и вычитания. В c++ приоритет ИЛИ выше приоритета И. Но, дабы не путаться, выражение явно делат скобками на составляющие части.
korez
8 / 8 / 0
Регистрация: 22.02.2011
Сообщений: 179
21.06.2011, 12:04  [ТС]     цикл for и if #7
нет, и в скобках то же все || слево на право
talis
 Аватар для talis
789 / 541 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
21.06.2011, 12:38     цикл for и if #8
korez, да, операторы с одинаковым приритетом обрабатываются последовательно.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.06.2011, 02:00     цикл for и if
Еще ссылки по теме:

C++ Цикл do while.
C++ Изменить цикл for на цикл do-while
C++ Цикл while

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

Или воспользуйтесь поиском по форуму:
accept
4837 / 3236 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
22.06.2011, 02:00     цикл for и if #9
C
1
if (b < 0 || c < 0 || d < 0)
логические операторы && и || выполняются слева-направо
как только становится определённым значение истинности всего выражения, вычисление операндов прекращается
Yandex
Объявления
22.06.2011, 02:00     цикл for и if
Ответ Создать тему
Опции темы

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