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

Повторно запустить оператор switch без goto, циклов и доп. функций - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
MopkoBHblu
10 / 10 / 0
Регистрация: 23.03.2011
Сообщений: 63
24.03.2011, 00:04     Повторно запустить оператор switch без goto, циклов и доп. функций #1
Как сабж?

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
int intSum = 0;
 
int main(void) {
    int intInteger01, intInteger02;
    int intSwitch;
        
    cout << "Input integer #1 and press ENTER:\n";
            cin >> intInteger01;
        cout << "Input integer #2 and press ENTER:\n";
            cin >> intInteger02;
    
    int intCurrentSum = intInteger01 + intInteger02;
    intSum += intCurrentSum;
 
        cout << "Sum is equals:" << intCurrentSum << endl;
        cout << "Total Sum is equals:" << intSum << endl;
    
    if ( intCurrentSum >= 10) {
        cout << "Sum is larger or equal 10...\n";
    } else {
        cout << "Sum is lesser 10\n";
    };
    
    cout << "To break programm execution input 1, to run programm again input 2:\n";
    cin >> intSwitch;
    switch (intSwitch) {
        case 2: 
            main();
        case 1: 
            ;
        default: 
            cout << "There is no options like this... Programm will be terminated...\n";
    }
return 0;
}
Есть ли какая-либо возможность повторно выполнять оператор switch, при получении значения intSwitch не указанного как случай выбора, без использования циклов, дополнительных функций и goto? Недавно начал изучать язык и сломал себе голову xD

И еще по-поводу стиля программирования endl или "\n"? xD Как я понял разница будет видна только на компьютерах 1980ых годов, есть ли кроме этого какие-то доводы в пользу того или иного метода перевода каретки?

Сильно не пинать за глупость, уровень моих знаний примерно на уровне "хеллоуорлд", на форуме и в справке смотрел, ничего подобного не нашел...

Добавлено через 39 минут
ап :..(
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2011, 00:04     Повторно запустить оператор switch без goto, циклов и доп. функций
Посмотрите здесь:

Замена goto на адекватный оператор C++
использования оператора switch и операторы циклов C++
C++ Вычислить таблицу значений функции, используя switch в паре с break, оператор перехода goto
Оператор switch C++ C++
Оператор Goto и ветвление C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ma3a
Эксперт C++
612 / 456 / 31
Регистрация: 28.01.2011
Сообщений: 605
24.03.2011, 00:07     Повторно запустить оператор switch без goto, циклов и доп. функций #2
Цитата Сообщение от MopkoBHblu Посмотреть сообщение
И еще по-поводу стиля программирования endl или "\n"
К стилю не относится. Если пишете на Си, то \n, если на Си++, то endl.
Цитата Сообщение от MopkoBHblu Посмотреть сообщение
Есть ли какая-либо возможность повторно выполнять оператор switch, при получении значения intSwitch не указанного как случай выбора, без использования циклов, дополнительных функций и goto?
А зачем извращаться? Цикл - вполне обычный подход в данном деле, не надо мудрить.
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
24.03.2011, 00:13     Повторно запустить оператор switch без goto, циклов и доп. функций #3
между кейсами должен стоять break;

Цитата Сообщение от MopkoBHblu Посмотреть сообщение
case 2:
main();
и это что у вас рекурсия такая?
MopkoBHblu
10 / 10 / 0
Регистрация: 23.03.2011
Сообщений: 63
24.03.2011, 00:14  [ТС]     Повторно запустить оператор switch без goto, циклов и доп. функций #4
Цитата Сообщение от Ma3a Посмотреть сообщение
К стилю не относится. Если пишете на Си, то \n, если на Си++, то endl.
А зачем извращаться? Цикл - вполне обычный подход в данном деле, не надо мудрить.
Дело именно в извращении, интересовало именно существования возможности... просто, как и всегда, сначала было слово, ну точнее спор xD
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
24.03.2011, 00:14     Повторно запустить оператор switch без goto, циклов и доп. функций #5
deleted
MopkoBHblu
10 / 10 / 0
Регистрация: 23.03.2011
Сообщений: 63
24.03.2011, 00:20  [ТС]     Повторно запустить оператор switch без goto, циклов и доп. функций #6
Цитата Сообщение от Maxwe11 Посмотреть сообщение
между кейсами должен стоять break;


и это что у вас рекурсия такая?
break здесь необязателен, потому что выход из switch произойдет в любом случае, но с точки зрения правильноделия согласен...

а что не так с рекурсией? xD Единственное что идентификацию переменных для сложения можно в глобал вывести, но их тогда обнулять надо будет при заходе в функцию... да и все это не то xD здесь дело в повторном заходе в switch с извратом...
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
24.03.2011, 00:23     Повторно запустить оператор switch без goto, циклов и доп. функций #7
нет такого и не может быть
1 линейное
2 ветвление
3 цикл
чтобы вернутся назад нужно цикл а как он создастся
оператором цикла, перехода это уже вторично
хотя можно представить такой изврат
C++
1
2
3
4
5
6
7
8
9
fnc()
{
  switch(m)
    case 0:
        break;
    case 1:
        fnc();
       break;
.................................
но это тоже будет цикл но из рекурсии
MopkoBHblu
10 / 10 / 0
Регистрация: 23.03.2011
Сообщений: 63
24.03.2011, 00:24  [ТС]     Повторно запустить оператор switch без goto, циклов и доп. функций #8
значит - я выиграл спор xD
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
24.03.2011, 08:39     Повторно запустить оператор switch без goto, циклов и доп. функций #9
К стилю не относится. Если пишете на Си, то \n, если на Си++, то endl.
Не соглашусь. Я лично чаще всего пишу '\n'. Ну не вижу я резон, каждый раз очищать буфер вместе с переводом строки...
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
24.03.2011, 08:55     Повторно запустить оператор switch без goto, циклов и доп. функций #10
можно предложить еще
создаем 2 потока
запускаем 1 поток
в первом switch
когда он заканчивается
запускаем 2 поток
задача второго потока
запустить первый поток
цикл видно невооруженным глазом
MopkoBHblu
10 / 10 / 0
Регистрация: 23.03.2011
Сообщений: 63
24.03.2011, 08:59  [ТС]     Повторно запустить оператор switch без goto, циклов и доп. функций #11
Цитата Сообщение от ValeryS Посмотреть сообщение
можно предложить еще
создаем 2 потока
запускаем 1 поток
в первом switch
когда он заканчивается
запускаем 2 поток
задача второго потока
запустить первый поток
цикл видно невооруженным глазом
БЛИН. Многопоточность то я и не учел... (((((((((((((((((((

Спасибо. Похоже я все-таки проиграл этот спор.

Добавлено через 1 минуту
Цитата Сообщение от ForEveR Посмотреть сообщение
Не соглашусь. Я лично чаще всего пишу '\n'. Ну не вижу я резон, каждый раз очищать буфер вместе с переводом строки...
вот об этом я и говорил. Но буфер очищается только на старых машинах вроде бы. Где организация вывода данных сделана по другому, или я не прав?
Ma3a
Эксперт C++
612 / 456 / 31
Регистрация: 28.01.2011
Сообщений: 605
24.03.2011, 18:08     Повторно запустить оператор switch без goto, циклов и доп. функций #12
Цитата Сообщение от ForEveR Посмотреть сообщение
Не соглашусь. Я лично чаще всего пишу '\n'. Ну не вижу я резон, каждый раз очищать буфер вместе с переводом строки...
Да, вы верно правы, об этом я просто-напросто редко задумываюсь, вот и пишу endl скорее по привычке
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
24.03.2011, 22:27     Повторно запустить оператор switch без goto, циклов и доп. функций #13
Не знаю проиграл или выиграл
еще раз повторюсь
есть три парадигмы программирования(не обязательно компьютрного)
1 линейность (шаг за шагом)
2 ветвление (или то или другое) в нечеткой логике может третье(пятое,десятое)
3 цикл (исполнение того-же самого)
Цитата Сообщение от ValeryS Посмотреть сообщение
когда он заканчивается
запускаем 2 поток
задача второго потока
запустить первый поток
цикл видно невооруженным глазом
с точки зрения языка (С,Паскаль)
нет цикла (for,while.........)
с точки зрения основ есть цикл
нарисуй Блок-схему и увидишь
еще раз
цикл можно решить по разному
ты показал как рекурсию я как потоки
по большому счету это взаимная рекурсия(чему сейчас к большому сожалению не учат)
функция1 вызывает функцию2
функция2 вызывает ......функциюN
функцияN вызывает функцию1
если я вместо функций поставил потоки ничего не меняет
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.03.2011, 22:31     Повторно запустить оператор switch без goto, циклов и доп. функций
Еще ссылки по теме:

Как исполльзовать оператор goto? C++
Задача на операторы циклов и switch C++
C++ Использовать оператор перехода GOTO в приведенном коде

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

Или воспользуйтесь поиском по форуму:
MopkoBHblu
10 / 10 / 0
Регистрация: 23.03.2011
Сообщений: 63
24.03.2011, 22:31  [ТС]     Повторно запустить оператор switch без goto, циклов и доп. функций #14
Цитата Сообщение от ValeryS Посмотреть сообщение
Не знаю проиграл или выиграл
еще раз повторюсь
есть три парадигмы программирования(не обязательно компьютрного)
1 линейность (шаг за шагом)
2 ветвление (или то или другое) в нечеткой логике может третье(пятое,десятое)
3 цикл (исполнение того-же самого)

с точки зрения языка (С,Паскаль)
нет цикла (for,while.........)
с точки зрения основ есть цикл
нарисуй Блок-схему и увидишь
еще раз
цикл можно решить по разному
ты показал как рекурсию я как потоки
по большому счету это взаимная рекурсия(чему сейчас к большому сожалению не учат)
функция1 вызывает функцию2
функция2 вызывает ......функциюN
функцияN вызывает функцию1
если я вместо функций поставил потоки ничего не меняет
я все это понял... суть спора был именно в исполнении xD я сказал что больше никак не сделаешь, знакомый сказал что есть еще возможность xD
Yandex
Объявления
24.03.2011, 22:31     Повторно запустить оператор switch без goto, циклов и доп. функций
Ответ Создать тему
Опции темы

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