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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
MopkoBHblu
10 / 10 / 0
Регистрация: 23.03.2011
Сообщений: 63
#1

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

24.03.2011, 00:04. Просмотров 1534. Ответов 13
Метки нет (Все метки)

Как сабж?

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++
Здрасти, как можно выйти из нескольких циклов сразу? без goto. for (int i=0; i&lt;ROWS; i++) for (int j=0; j&lt;COLS; j++){ ...

Вычислить таблицу значений функции, используя switch в паре с break, оператор перехода goto - C++
Доброго вам времени суток. Есть самое бредовое задание которое я только видел в своей жизни. Написать программу, используя операторы...

Критично ли использование goto при выходе из циклов? - C++
#include &lt;conio.h&gt; #include &lt;iostream.h&gt; void main() { int a,n,i,s=0; cout&lt;&lt;&quot;\tInput n&lt;=20&quot;&lt;&lt;endl; cin&gt;&gt;n; cout&lt;&lt;&quot;\n\t Massiv...

Оператор Goto и ветвление - C++
Помогите, пожалуйста, написать программу, которая сперва считывает введенное с клавиатуры число, а потом, если введено одно значение...

Как исполльзовать оператор goto? - C++
Как его юзать?

Замена goto на адекватный оператор - C++
Есть приблизительно такой код (условие всередине нескольких циклов, приводить которые не имеет смысла): metka1: if (Y==i+1) ...

Использовать оператор перехода GOTO в приведенном коде - C++
Мне нужен оператор перехода GOTO в программе. Если выводится сообщение &quot;Данное число в массиве отсутствует&quot;, то должно перейти на начало...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ma3a
Эксперт C++
616 / 460 / 31
Регистрация: 28.01.2011
Сообщений: 605
24.03.2011, 00:07     Повторно запустить оператор switch без goto, циклов и доп. функций #2
Цитата Сообщение от MopkoBHblu Посмотреть сообщение
И еще по-поводу стиля программирования endl или "\n"
К стилю не относится. Если пишете на Си, то \n, если на Си++, то endl.
Цитата Сообщение от MopkoBHblu Посмотреть сообщение
Есть ли какая-либо возможность повторно выполнять оператор switch, при получении значения intSwitch не указанного как случай выбора, без использования циклов, дополнительных функций и goto?
А зачем извращаться? Цикл - вполне обычный подход в данном деле, не надо мудрить.
Jupiter
Каратель
Эксперт С++
6551 / 3971 / 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
Каратель
Эксперт С++
6551 / 3971 / 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
Модератор
6534 / 5000 / 460
Регистрация: 14.02.2011
Сообщений: 16,623
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
В астрале
Эксперт С++
7967 / 4729 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
24.03.2011, 08:39     Повторно запустить оператор switch без goto, циклов и доп. функций #9
К стилю не относится. Если пишете на Си, то \n, если на Си++, то endl.
Не соглашусь. Я лично чаще всего пишу '\n'. Ну не вижу я резон, каждый раз очищать буфер вместе с переводом строки...
ValeryS
Модератор
6534 / 5000 / 460
Регистрация: 14.02.2011
Сообщений: 16,623
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++
616 / 460 / 31
Регистрация: 28.01.2011
Сообщений: 605
24.03.2011, 18:08     Повторно запустить оператор switch без goto, циклов и доп. функций #12
Цитата Сообщение от ForEveR Посмотреть сообщение
Не соглашусь. Я лично чаще всего пишу '\n'. Ну не вижу я резон, каждый раз очищать буфер вместе с переводом строки...
Да, вы верно правы, об этом я просто-напросто редко задумываюсь, вот и пишу endl скорее по привычке
ValeryS
Модератор
6534 / 5000 / 460
Регистрация: 14.02.2011
Сообщений: 16,623
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++
Есть простой таймер #include &lt;cstdlib&gt; #include &lt;iostream&gt; #include &lt;windows.h&gt; using namespace std; int main(){ ...

Переделать фрагмент кода так, чтобы использовался оператор goto - C++
Ребяяяят!! Помогите переделать в goto данный фрагмент программы! Все плохо... for (int i = 0; i&lt;n; i++) { for (int j =...

При вводе пользователем числа от 0 до 9, вывести на экран название программы (использовать оператор goto) - C++
Программу по заданию я написал Написать программу для выполнения следующих действий. При вводе цифры от 0 до 9 будет выводиться ее...

Оператор Switch - C++
Нужно помощь с этим оператором может быть где-то направильно написал ??? со всеми функциями ответ выходет не верно, &quot;res&quot; - не меняет свое...

Оператор switch - C++
Помогите переправить задачу на оператор switch, пож-та. Я написал с предусловием, но как быть со switch'ом не знаю. Вот код с...


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

Или воспользуйтесь поиском по форуму:
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, циклов и доп. функций
Ответ Создать тему
Опции темы

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