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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
svpol
0 / 0 / 0
Регистрация: 13.10.2012
Сообщений: 9
#1

Когда не нужен оператор else? - C++

23.11.2012, 22:52. Просмотров 553. Ответов 5
Метки нет (Все метки)

Объясните, пожалуйста, когда обязателен,а когда не обязателен оператор else.
Допустим, вот в таком коде:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
using namespace std;
 
int main()
{
    unsigned short small;
    unsigned long large;
    unsigned short skip;
    unsigned short target;
    const unsigned short MAXSMALL=65535;
    
    cout << "Enter a small number: ";
    cin >> small;
    cout << "Enter a large number: ";
    cin >> large;
    cout << "Enter a skip number: ";
    cin >> skip;
    cout << "Enter a target number: ";
    cin >> target;
    cout << "\n";
    
    while (small < large && large > 0 && small < MAXSMALL)
    {
        small++;
        
        if (small % skip == 0)
        {
        cout << "skipping on " << small << endl;
        continue;
        }
        if (large == target)
        {
            cout << "Target reached!";
            break;
        }
        large-=2;
    }
 
    cout << "\nSmall: " << small << "Large: " << large << endl;
    return 0;
if прекрасно обходится без всяких else. Почему так?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2012, 22:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Когда не нужен оператор else? (C++):

Когда оператор должен быть обязательно членом класса, и когда он обязательно не принадлежит классу? - C++
Нужно узнать случаи, когда оператор функция должна быть обязательно членом класса и случаи, когда оператор- функция обязательно не...

Для чего нужен оператор двоеточие, если два двоеточия - это оператор расширения области видимости - C++
для чего нужен оператор двоеточие ( : ), если два двоеточия( :: ) - это оператор расширения области видимости.

Хочу понять когда можно делать оператор delete - C++
совсем новичок, а в книге толком не объясняется, помогите понять суть плиз Вот очень простой код: #include &lt;windows.h&gt; class...

Когда в классе нужен копирующий конструктор? - C++
Меня интересует вопрос когда в классе нужен копирующий конструктор.

Перегружаемый оператор присваивания, зачем нужен амперсанд? - C++
Вот программа: #include &lt;iostream&gt; using namespace std; class alpha { private: int data; public: alpha(){}

Нюансы синтаксиса: для чего нужен оператор -> - C++
Здравствуйте совсем недавно столкнулся с вот таким вот оператором. -&gt; . Подскажите пожалуйста, что он делает? card *bus_park(nullptr);...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,929
23.11.2012, 22:55 #2
Если не указывать else, то проверяет условие всегда. Если указать, то лишь в случае, если не удовлетворяет предшествующему условию if.
0
ValeryS
Модератор
6636 / 5043 / 466
Регистрация: 14.02.2011
Сообщений: 16,855
23.11.2012, 23:01 #3
Цитата Сообщение от svpol Посмотреть сообщение
Объясните, пожалуйста, когда обязателен,а когда не обязателен оператор else.
ты это поймешь если переведешь слово else "иначе"
например утверждение
если идет дождь сидим дома
иначе идем гулять
здесь только с else
два пути или сидим дома или идем гулять
а
если идет дождь сидим дома
без else
здесь несколько решений если нет дождя можем сидеть дома можем пойти гулять можем песни петь.......
0
svpol
0 / 0 / 0
Регистрация: 13.10.2012
Сообщений: 9
23.11.2012, 23:10  [ТС] #4
Цитата Сообщение от ValeryS Посмотреть сообщение
ты это поймешь если переведешь слово else "иначе"
например утверждение
если идет дождь сидим дома
иначе идем гулять
здесь только с else
два пути или сидим дома или идем гулять
а
если идет дождь сидим дома
без else
здесь несколько решений если нет дождя можем сидеть дома можем пойти гулять можем песни петь.......
Честно говоря, не понял, как это практически реализуется. В приведенном примере, если (small % skip == 0) false управление переходит к следующему оператору if, что с else, что без else.
0
ValeryS
Модератор
6636 / 5043 / 466
Регистрация: 14.02.2011
Сообщений: 16,855
23.11.2012, 23:25 #5
Цитата Сообщение от svpol Посмотреть сообщение
В приведенном примере, если (small % skip == 0) false управление переходит к следующему оператору if, что с else, что без else.
серьезно
а оператор continue; Вам ни о чем не говорит?
Цитата Сообщение от svpol Посмотреть сообщение
i
C++
1
2
3
4
5
f (small % skip == 0)
* * * * {
* * * * cout << "skipping on " << small << endl;
* * * * continue;
* * * * }
это значит что если условие выполнится то мы наплевав на все что ниже идем опять к началу цикла то бишь вот сюда
Цитата Сообщение от svpol Посмотреть сообщение
C++
1
while (small < large && large > 0 && small < MAXSMALL)
это можно записать без continue вот так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
while (small < large && large > 0 && small < MAXSMALL)
{
  small++;
        
   if (small % skip == 0)
   {
    cout << "skipping on " << small << endl;
   }
    else
   {
    if (large == target)
    {
     cout << "Target reached!";
     break;
     }
    large-=2;
   }   
 }
1
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,929
23.11.2012, 23:30 #6
Смотрите, тут лишняя проверка будет:
if (лысый)
if (имеет длинные волосы)
if (имеет короткие волосы)

Очевидно, что если лысый, то волос у него уже нет, поэтому лучше все переписать так:
if (лысый) ...
else // если не лысый
{
if (имеет длинные волосы) {}
esle {} // если имеет недлинные волосы
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2012, 23:30
Привет! Вот еще темы с ответами:

Объяснить (с примерами) для чего нужен RTTI, как и когда его можно и нужно использовать - C++
доброго времени суток. вопрос такой как я понял RTTI это свойсвто языка С++ которое было добавлено позднее его релиза, что бы...

Тип void как возвращаемое значение функции: что он такое, зачем он нужен, где, когда и как его использовать? - C++
Объясните пожалуйста про Void для оооочень далекого человека. Читаю книгу Шилдта, в принципе всё ясно, всё понимаю и пробую, но вот Void -...

Когда стоит использовать класс, а когда лучше обойтись без них? - C++
Когда стоит использовать класс, а когда лучше обойтись без них? Когда следует использовать несколько классов? Вот, например. Программа...

Когда надо использовать списки инициализации, а когда можно заменить их констуктором по умолчанию? - C++
1)Любезные,скажите когда надо исп. списки инициализации, а когда можно заменить констуктором по умолчанию? 2) правильно ли...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
23.11.2012, 23:30
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru