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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2008, 18:03   #1
molodoyy
Пользователь
 
Регистрация: 25.10.2008
Сообщений: 12
По умолчанию Вопросы по if, else?

Как сделать так чтобы программа работала по таком принципу:
1. Проверяется первое условие если оно верно - выводится оператор за ним.
2. Проверяется второе условие если оно верно - выводится оператор за ним.(Если оба условия верны, то выводиться два оператора.)
3. Если не одно условие не выполнилось вывелся оператор, который после else.

if(a == b)
printf("В ЯЩИКЕ №1");
if(c == d)
printf("В ЯЩИКЕ №2");
else
printf("НИ В ОДНОМ ИЗ ЯЩИКОВ");

//если писать так, то else выполняется только если неверно второе условие,
то есть если первое будет верно, а второе нет, на экран выведется: "В ЯЩИКЕ №1, НИ В ОДНОМ ИЗ ЯЩИКОВ" - что не логично.

if(a == b)
printf("В ЯЩИКЕ №1");
else if(c == d)
printf("В ЯЩИКЕ №2");
else
printf("НИ В ОДНОМ ИЗ ЯЩИКОВ");

//если писать так, то он проверит первое условие и если оно окажется верным дальше он даже не станет проверять и выдаст на экран "В ЯЩИКЕ №1", а проверить дальше надо, то есть если окажется так что оба условия верны он должен выдать: "В ЯЩИКЕ №1, В ЯЩИКЕ №2".

Подскажите как это написать правильно, у меня есть единственный вариант сделать это так:

if(a == b || c == d)
{
if(a == b)
printf("В ЯЩИКЕ №1");
if(c == d)
printf("В ЯЩИКЕ №2);
};
else printf("НИ В ОДНОМ ИЗ ЯЩИКОВ");

//то есть он сначала проверит условия попадает ли хотя бы один из вариантов когда в ящиках что-то есть, если да он уже будет выяснять в какой, в одном или в обоих. Если нет, то сразу напишет что: "НИ В ОДНОМ ИЗ ЯЩИКОВ".

В принципе так можно решить проблему, но в моем личном примере условия очень длинные, и сводить их еще в одно условие до этого очень по-варварски получается.
molodoyy вне форума Ответить с цитированием
Старый 25.10.2008, 18:55   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

Код:
flag = true;
if (a == b)
{
  printf("В ЯЩИКЕ №1");
  flag = false;
}
if(c == d)
{
  printf("В ЯЩИКЕ №2");
  flag = false;
}
if (flag)
  printf("НИ В ОДНОМ ИЗ ЯЩИКОВ");
pu4koff вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопросы по реестру Titan123 Общие вопросы Delphi 5 02.07.2008 13:44
С++ и Delphi. Вопросы UnD)eaD)Snake Общие вопросы C/C++ 3 21.08.2007 20:11
вопросы MAcK Win Api 7 21.07.2007 18:08