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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2008, 18:05   #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, 22:35   #2
Arkuz
Форумчанин
 
Аватар для Arkuz
 
Регистрация: 22.09.2007
Сообщений: 540
По умолчанию

Я с СИ сталкивался всего пару раз. И то на уровне простеньких лбораторных работ. Так что напишу на синтаксисе pascal, а вы уж тут переделайте...

Попробуйте такую комбинацию:

Код:
var
 k,k1:boolean;
begin
 k:=false;
 k1:=false;
 if a=b then k:=true;
 if c=d then k1:=true;
 if (k=true) and (k1=true) then writeln('Оба условия верны');
 if (k=true) and (k1=false) then writeln('В 1 ящике');
 if (k=false) and (k1=true) then writeln('В 2 ящике');
 if (k=false) and (k1=false) then writeln('Оба условия НЕ верны');
end
Arkuz вне форума Ответить с цитированием
Старый 26.10.2008, 20:07   #3
Ламер_001
Ну и что? :)
Форумчанин
 
Регистрация: 20.10.2008
Сообщений: 129
По умолчанию

думаю switch поможет только break в условиях убрать, что бы проверял все.
Учиться, учиться и еще раз учиться
Ламер_001 вне форума Ответить с цитированием
Старый 26.10.2008, 20:30   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

А если так?
Введем переменную toprint.
Код:
toprint='';
if(a == b)
toprint='В ЯЩИКЕ №1'; 
if(c == d)
toprint=toprint+'В ЯЩИКЕ №2';
if (toprint == '')
toprint="НИ В ОДНОМ ИЗ ЯЩИКОВ";
printf(toprint);
mihali4 вне форума Ответить с цитированием
Старый 21.03.2010, 15:04   #5
StepByStep
 
Регистрация: 10.03.2010
Сообщений: 3
По умолчанию

а можете кинуть постановку задачи полностью?
StepByStep вне форума Ответить с цитированием
Старый 21.03.2010, 15:34   #6
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Код:
#!/usr/bin/python
# -*- coding: cp1251 -*-

a = 1
b = 2
c = 3
d = 4

isIn = False

if a == b:
    print "In the box #1"
    isIn = True

if c == d:
    print "In the box #2"
    isIn = True

if not isIn:
    print "In no box"

#
Vago вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопросы по if, else? molodoyy Общие вопросы C/C++ 1 25.10.2008 18:55
MediaPlayer, вопросы snake-as Мультимедиа в Delphi 1 02.06.2008 08:23
С++ и Delphi. Вопросы UnD)eaD)Snake Общие вопросы C/C++ 3 21.08.2007 20:11
вопросы MAcK Win Api 7 21.07.2007 18:08