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

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

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

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

23.11.2012, 22:52. Просмотров 496. Ответов 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. Почему так?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2012, 22:52     Когда не нужен оператор else?
Посмотрите здесь:

Перестало выводить, когда задание списков перевел в конструкторы, когда были просто функции выводило нормально. C++
C++ Когда надо использовать списки инициализации, а когда можно заменить их констуктором по умолчанию?
C++ Когда используется * перед указателями, а когда нет?
C++ Когда в классе нужен копирующий конструктор?
Когда использовать WinAPI, а когда функции языка? C++
C++ Хочу понять когда можно делать оператор delete
C++ Когда оператор должен быть обязательно членом класса, и когда он обязательно не принадлежит классу?
C++ Для чего нужен оператор двоеточие, если два двоеточия - это оператор расширения области видимости
Когда стоит использовать класс, а когда лучше обойтись без них? C++
Объяснить (с примерами) для чего нужен RTTI, как и когда его можно и нужно использовать C++
C++ Нюансы синтаксиса: для чего нужен оператор ->
C++ Когда запускаю и ввожу параметры, то, в момент когда программа должна выполнять действие, пишет ошибку

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт CЭксперт С++
 Аватар для MrGluck
6218 / 3463 / 423
Регистрация: 29.11.2010
Сообщений: 9,176
23.11.2012, 22:55     Когда не нужен оператор else? #2
Если не указывать else, то проверяет условие всегда. Если указать, то лишь в случае, если не удовлетворяет предшествующему условию if.
ValeryS
Модератор
6449 / 4915 / 451
Регистрация: 14.02.2011
Сообщений: 16,297
23.11.2012, 23:01     Когда не нужен оператор else? #3
Цитата Сообщение от svpol Посмотреть сообщение
Объясните, пожалуйста, когда обязателен,а когда не обязателен оператор else.
ты это поймешь если переведешь слово else "иначе"
например утверждение
если идет дождь сидим дома
иначе идем гулять
здесь только с else
два пути или сидим дома или идем гулять
а
если идет дождь сидим дома
без else
здесь несколько решений если нет дождя можем сидеть дома можем пойти гулять можем песни петь.......
svpol
0 / 0 / 0
Регистрация: 13.10.2012
Сообщений: 9
23.11.2012, 23:10  [ТС]     Когда не нужен оператор else? #4
Цитата Сообщение от ValeryS Посмотреть сообщение
ты это поймешь если переведешь слово else "иначе"
например утверждение
если идет дождь сидим дома
иначе идем гулять
здесь только с else
два пути или сидим дома или идем гулять
а
если идет дождь сидим дома
без else
здесь несколько решений если нет дождя можем сидеть дома можем пойти гулять можем песни петь.......
Честно говоря, не понял, как это практически реализуется. В приведенном примере, если (small % skip == 0) false управление переходит к следующему оператору if, что с else, что без else.
ValeryS
Модератор
6449 / 4915 / 451
Регистрация: 14.02.2011
Сообщений: 16,297
23.11.2012, 23:25     Когда не нужен оператор else? #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;
   }   
 }
MrGluck
Ворчун
Эксперт CЭксперт С++
 Аватар для MrGluck
6218 / 3463 / 423
Регистрация: 29.11.2010
Сообщений: 9,176
23.11.2012, 23:30     Когда не нужен оператор else? #6
Смотрите, тут лишняя проверка будет:
if (лысый)
if (имеет длинные волосы)
if (имеет короткие волосы)

Очевидно, что если лысый, то волос у него уже нет, поэтому лучше все переписать так:
if (лысый) ...
else // если не лысый
{
if (имеет длинные волосы) {}
esle {} // если имеет недлинные волосы
}
Yandex
Объявления
23.11.2012, 23:30     Когда не нужен оператор else?
Ответ Создать тему
Опции темы

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