Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
 Аватар для web-magician
-6 / 11 / 1
Регистрация: 11.02.2011
Сообщений: 227

Как правильно записывать условные операторы и как прервать проверку при достижении результата?

31.08.2014, 22:59. Показов 4494. Ответов 60
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
доброго времени суток форумчане, подскажите пожалуйста как остановить условие после правильно выполненного условия.
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
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
int main()
{
    setlocale (LC_ALL,"Russian");
    double cifra1,cifra2;
    char znak;
    system ("color 30");
    cout << "\t\t\t ///////////////////////////" << endl;
    cout << "\t\t\t // Программа калькулятор //" << endl;
    cout << "\t\t\t ///////////////////////////" << endl;
    cout << endl;
    cout << "\t\t\t  Программа понимает только:\n\n";
    cout << "\t\t / Сложение / Вычитание/ Умножение/ Деление /\n\n";
    cout << "\t    Введите сначала значение затем знак и второе значение" << endl;
    cin >> cifra1;
    cin >> znak;
    cin >> cifra2;
    cout << endl;
    if ( znak=='+' )
        cout << "Ваш ответ: " << cifra1 <<"+"<< cifra2 <<"="<< cifra1+cifra2 << endl;
    if ( znak=='-' )
        cout << "Ваш ответ: " << cifra1 <<"-"<< cifra2 <<"="<< cifra1-cifra2 << endl;
    if ( znak=='*' )
        cout << "Ваш ответ: " << cifra1 <<"*"<< cifra2 <<"="<< cifra1*cifra2 << endl;
    if ( znak=='/' )
        cout << "Ваш ответ: " << cifra1 <<"/"<< cifra2 <<"="<< cifra1/cifra2 << endl;
    else
        cout << "Введенные вами данные не соответствуют указанным!" << endl;
        cout << "Пожалуйста введите корректные данные\n\n";
    return 0;
}
P.S. я только начинающий программист
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
31.08.2014, 22:59
Ответы с готовыми решениями:

Как правильно записать условные операторы
Скажите не понимаю почему редактор подсвечивает именно Else и End if If IsNumeric(TextBox1.Text) And ComboBox1.Text...

Как правильно записывать и считывать двумерные массивы при работе с файлами
Как правильно записывать и считывать двумерные массивы при работе с файлами? Поискал в интернете, ничего толкового нет. FILE *t; ...

Как использовать условные операторы в ассемблерной вставке
Вообщем суть в том,чтобы переписать программу,ранее написанную на паскале,в код asm Asm используется,встроенный в Turbo Pascal....

60
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
01.09.2014, 23:20
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от web-magician Посмотреть сообщение
есть ли ошибка в такой форме записи
а чем они отличаются?
разве что во втором случае пробелов нет?
компилятору без разницы, а человеку читать не удобно
0
01.09.2014, 23:21

Не по теме:

Цитата Сообщение от ValeryS Посмотреть сообщение
типа таких
у меня не ловятся никак.. А вообще, разве описаны такие исключения? Это же вроде как аппаратные исключения, и я их не нашел тут нигде http://www.cplusplus.com/refer... exception/

0
 Аватар для web-magician
-6 / 11 / 1
Регистрация: 11.02.2011
Сообщений: 227
01.09.2014, 23:22  [ТС]
но я буду придерживаться первого варианта потому что cout там выводит другое сообщение о не корректности введенных данных типа на нуль делить нельзя...
0
01.09.2014, 23:25

Не по теме:

Цитата Сообщение от KOPOJI Посмотреть сообщение
меня не ловятся никак.. А вообще, разве описаны такие исключения? Это же вроде как аппаратные исключения,
а их нужно в перенаправить, по крайней мере в VS, года два назад я показывал как
найду тему скину

0
694 / 304 / 99
Регистрация: 04.07.2014
Сообщений: 851
01.09.2014, 23:25
Что бы небыло таких ошибок:
1. Помни про else if
2. По возможности, используй case
3. В условиях пиши ('-'==znak)
4. Используй {} для if/for/...
1
01.09.2014, 23:29  [ТС]

Не по теме:

КАЛЬКУЛЯТОР!!! Версия 2.0 Исправленная и дополненная!

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
41
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
int main()
{
    setlocale (LC_ALL,"Russian");
    double cifra1,cifra2;
    char znak;
    system ("color 30");
    cout << "\t\t\t ///////////////////////////" << endl;
    cout << "\t\t\t // Программа калькулятор //" << endl;
    cout << "\t\t\t ///////////////////////////" << endl;
    cout << endl;
    cout << "\t\t\t  Программа понимает только:\n\n";
    cout << "\t\t / Сложение / Вычитание/ Умножение/ Деление /\n\n";
    cout << "\t    Введите сначала значение затем знак и второе значение\n\n";
    cout << "Ваши значения ";
    cin >> cifra1;
    cin >> znak;
    cin >> cifra2;
    cout << endl;
    if ( znak == '/' && cifra2 == 0 )
        cout << "Введенное вами значение не корректно. На нуль делить нальзя!\n\n" << endl;
    else
    switch ( znak )
    {
    case '+':
        cout << "Ваш ответ: " << cifra1 <<"+"<< cifra2 <<"="<< cifra1+cifra2 << endl;break;
    case '-':
        cout << "Ваш ответ: " << cifra1 <<"-"<< cifra2 <<"="<< cifra1-cifra2 << endl;break;
    case '*':
        cout << "Ваш ответ: " << cifra1 <<"*"<< cifra2 <<"="<< cifra1*cifra2 << endl;break;
    case '/':
        cout << "Ваш ответ: " << cifra1 <<"/"<< cifra2 <<"="<< cifra1/cifra2 << endl;break;
    default:
        cout << "В данной версии не поддерживается такой оператор, поддерживаются сложение + вычитание - умножение * деление /\n\n" << endl;
    }
    return 0;
}
:D
возьмусь за другую прогу! и вы неприменно узнаете о ней:D

0
01.09.2014, 23:31

Не по теме:

web-magician, круто..

0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
02.09.2014, 00:53
KOPOJI,
вот нашел, про исключения
правда
Цитата Сообщение от ValeryS Посмотреть сообщение
года два назад я показывал как
я загнул в этом году было
Обработка исключительных ситуаций!
1
 Аватар для web-magician
-6 / 11 / 1
Регистрация: 11.02.2011
Сообщений: 227
02.09.2014, 21:03  [ТС]
а вот и курс валют и снова не понятно где ошибка(и)
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
41
42
43
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
int main()
{
    setlocale (LC_ALL,"Russian");
    int valuta;
    double dollar,euro,rubl;
    char znak;
    system ("color 30");
    cout << "\t\t\t ///////////////////////////\n";
    cout << "\t\t\t // Программа курс валют //\n";
    cout << "\t\t\t ///////////////////////////\n";
    cout << "\t\t\t  Введите курс валют: 1-Доллар 2-Евро 3-Рубль\n\n";
    cin >> dollar;
    cout << "Доллар= " << dollar << endl;
    cin >> euro;
    cout << "Евро= " << euro << endl;
    cin >> rubl;
    cout << "Рубль= " << rubl << endl;
    if ( dollar == 0 || euro == 0 || rubl == 0 )
        cout << "Введенное вами значение не корректно.\n\n" << endl;
    else
    cout << "\t\t\tВведите валюту:  1-Доллар: 2-Евро: 3-Рубль:\n\n";
    switch ( valuta )
    case 1: 
    {
        cout << " Доллар= " << dollar << endl;
        cout << " Евро= " << dollar / euro << endl;
        cout << " Рубль= " << rubl / dollar << endl;break;
    case 2:
        cout << " Евро= " << euro << endl;
        cout << " Доллар= " << euro / dollar << endl;
        cout << " Рубль= " << rubl / euro << endl;break;
    case 3:
        cout << " Рубль= " << rubl << endl;
        cout << " Доллар= " << rubl / dollar << endl;
        cout << " Евро= " << rubl / euro << endl;break;
    default:
    }
    return 0;
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6725 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
02.09.2014, 21:11
Цитата Сообщение от web-magician Посмотреть сообщение
C++
1
2
3
switch ( valuta )
    case 1: 
    {
C++
1
2
3
switch ( valuta )
    {
    case 1:
Цитата Сообщение от web-magician Посмотреть сообщение
C++
1
2
default:
    }
C++
1
2
default: ;
    }
Или, раз его не используете - не пишите его вообще.
Цитата Сообщение от web-magician Посмотреть сообщение
char znak;
пережитки прошлого?
Цитата Сообщение от web-magician Посмотреть сообщение
switch ( valuta )
и что в ней, по вашему, должно находиться? Там мусор.

Добавлено через 1 минуту

Не по теме:

web-magician, вы сообщения компилятора из принципа не хотите смотреть..?

0
 Аватар для web-magician
-6 / 11 / 1
Регистрация: 11.02.2011
Сообщений: 227
02.09.2014, 22:11  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
и что в ней, по вашему, должно находиться?
и что в ней должно находиться?
Цитата Сообщение от KOPOJI Посмотреть сообщение
пережитки прошлого?
а есть иной ход?
Цитата Сообщение от KOPOJI Посмотреть сообщение
web-magician, вы сообщения компилятора из принципа не хотите смотреть..?
я посмотрел и не понял в чем дело я сам учусь только и то по видео и книжкам
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
02.09.2014, 22:23
Цитата Сообщение от web-magician Посмотреть сообщение
switch ( valuta )
где ты вводишь значение valuta?
0
 Аватар для web-magician
-6 / 11 / 1
Регистрация: 11.02.2011
Сообщений: 227
02.09.2014, 22:28  [ТС]
Цитата Сообщение от ValeryS Посмотреть сообщение
где ты вводишь значение valuta?
нигде не ввожу, а что в ней должно находиться?
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
02.09.2014, 22:40
Цитата Сообщение от web-magician Посмотреть сообщение
нигде не ввожу, а что в ней должно находиться?
А что ты проверяешь в switch ?
наверно вот это
Цитата Сообщение от web-magician Посмотреть сообщение
Введите валюту: *1-Доллар: 2-Евро: 3-Рубль:
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6725 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
02.09.2014, 23:05

Не по теме:

тяжелый случай..)


Цитата Сообщение от web-magician Посмотреть сообщение
и что в ней должно находиться?
судя из названия переменной - валюта. А вообще - вы автор программы, вам и положено знать, что в ней должно находиться.
Цитата Сообщение от web-magician Посмотреть сообщение
а есть иной ход?
какой еще "иной ход"? Эта переменная использовалась в предыдущей программе, здесь она не используется и не нужна вообще.
Цитата Сообщение от web-magician Посмотреть сообщение
я посмотрел и не понял в чем дело я сам учусь только и то по видео и книжкам
в сообщениях компилятора пишется ошибка и ее код. Этого более чем достаточно в наше время, гугл выдает массу информации..
Кликните здесь для просмотра всего текста
http://ideone.com/XNfRPV
prog.cpp: In function ‘int main()’: - ошибки в функции int main() :
prog.cpp:41:5: error: expected primary-expression before ‘}’ token
}
^
на 41 строчке, пятый символ - https://translate.google.ru/#e... 99%20token
Согласен, пусть эта ошибка не очень понятна. Но парную скобку можно посмотреть, где она находится? И тогда увидим, что ошибка в том, что не туда влепили открывающую скобку switch, промахнулись на строчку.
prog.cpp:41:5: error: expected ‘;’ before ‘}’ token
В этой же строчке, на этот же символ https://translate.google.ru/#e... D%E2%80%99
Незаконченная инструкция - нет символа ее окончания ( ; )
prog.cpp:10:10: warning: unused variable ‘znak’ [-Wunused-variable]
char znak;
^
10 строчка, 10 символ - https://translate.google.ru/#e... k%E2%80%99.

Исправляем эти ошибки и получаем новую. К сожалению, на ideone отключено -Wuninitialized, поэтому ошибку компилятора не увидите
http://ideone.com/vkifJU
А если компилятор отображает эти ошибки - вы увидите нечто наподобие такого "Warning: valuta may be used uninitialized in this function" - https://translate.google.ru/#e... 20function
Что означает, что вы не проинициализировали эту переменную никаким значением, и то, что в ней находится - неизвестно и предугадать невозможно.
0
 Аватар для web-magician
-6 / 11 / 1
Регистрация: 11.02.2011
Сообщений: 227
02.09.2014, 23:31  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
тяжелый случай..)
а что вы ожидали увидеть в разделе помощь начинающим? я же ведь ясно написал что учусь и то по книгам и видео...
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6725 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
02.09.2014, 23:38
Цитата Сообщение от web-magician Посмотреть сообщение
а что вы ожидали увидеть в разделе помощь начинающим?
по крайней мере не заявления
Цитата Сообщение от web-magician Посмотреть сообщение
и что в ней должно находиться?
Цитата Сообщение от web-magician Посмотреть сообщение
а есть иной ход?
Извините, вы пишете код, и не знаете что там должно находиться? Если переменная называется valuta (а любой человек, даже не знакомый с программированием, догадается, для чего она), но вы спрашиваете у нас, что там должно быть - то это более чем странно. И, вроде как, не совсем новичок - но ошибки в элементарном синтаксисе..
Цитата Сообщение от web-magician Посмотреть сообщение
учусь и то по книгам и видео...
а вы думаете, всем другим нанимают (нанимали) репетиторов, и т.п.? Все (по-крайней мере, большая часть) изучают подобным образом..

Добавлено через 3 минуты

Не по теме:

и да, я тоже далеко не эксперт C++. И, представьте, тоже книжечку Страуструпа почитываю, как время бывает..

0
 Аватар для web-magician
-6 / 11 / 1
Регистрация: 11.02.2011
Сообщений: 227
02.09.2014, 23:42  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
Извините, вы пишете код, и не знаете что там должно находиться? И, вроде как, не совсем новичок - но ошибки в элементарном синтаксисе..
есть на то причины уважаемый))) забрасывал и начинаю сначала...
Цитата Сообщение от KOPOJI Посмотреть сообщение
по крайней мере не заявления
это не заявления.
Цитата Сообщение от KOPOJI Посмотреть сообщение
а вы думаете, всем другим нанимают (нанимали) репетиторов, и т.п.? Все (по-крайней мере, большая часть) изучают подобным образом..
и каждому это дается по своему... занимаюсь ремонтом компьютеров и никаких не решаемых проблем не имею,а тут не все так просто мне дается и?

Добавлено через 1 минуту
Цитата Сообщение от KOPOJI Посмотреть сообщение
и да, я тоже далеко не эксперт C++. И, представьте, тоже книжечку Страуструпа почитываю, как время бывает..
повторяюсь не каждому дается легко то или иное...

Добавлено через 1 минуту
Ладно оставим этот флуд и спрошу по теме.
switch требует целочисленный тип, а мои переменные не должны быть целочисленными,как выйти из ситуации?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6725 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
02.09.2014, 23:47

Не по теме:

Цитата Сообщение от web-magician Посмотреть сообщение
повторяюсь не каждому дается легко то или иное...
я не говорил, что это для меня "раз плюнуть" или нечто подобное.


Цитата Сообщение от web-magician Посмотреть сообщение
как выйти из ситуации?
лучше всего - заменить на if-else
0
 Аватар для web-magician
-6 / 11 / 1
Регистрация: 11.02.2011
Сообщений: 227
03.09.2014, 00:11  [ТС]
компилятор молчит,а сам ошибку не вижу но проходят все условия
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
41
42
43
44
45
46
47
48
49
50
51
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
int main()
{
    setlocale (LC_ALL,"Russian");
    system ("color 30");
    cout << "\t\t\t ///////////////////////////\n";
    cout << "\t\t\t // Программа курс валют //\n";
    cout << "\t\t\t ///////////////////////////\n";
 
    double dollar, euro, rubl;
    cout << "\t\tВведите курс валют: 1-Доллар 2-Евро 3-Рубль\n\n";
    cin >> dollar;
    cout << "Доллар= " << dollar << endl;
    cin >> euro;
    cout << "Евро= " << euro << endl;
    cin >> rubl;
    cout << "Рубль= " << rubl << endl;
 
    if ( dollar == 0 || euro == 0 || rubl == 0 )
    {
        cout << "Введенное вами значение не корректно!";
        return -1;
    }
    else
        cout << "\t\tВведите валюту:  1-Доллар: 2-Евро: 3-Рубль:\n\n";
    if ( '1' )
    {
        cout << " Доллар= " << dollar << endl;
        cout << " Евро= " << dollar / euro << endl;
        cout << " Рубль= " << rubl / dollar << endl;
    }
    if ( '2' )
    {
        cout << " Евро= " << euro << endl;
        cout << " Доллар= " << euro / dollar << endl;
        cout << " Рубль= " << rubl / euro << endl;
    }
    if ( '3' )
    {
        cout << " Рубль= " << rubl << endl;
        cout << " Доллар= " << rubl / dollar << endl;
        cout << " Евро= " << rubl / euro << endl;
    }
    //else
        //cerr << "error" << endl;
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.09.2014, 00:11

Как правильно прервать/возобновить цикл
Такая вот проблема: есть часто встречающаяся функция ввода вещественного массива (как правило, большого). При вводе не цифры приходится все...

Как правильно прервать вставку в триггере?
Всем привет! в триггере делаю такую проверку: IF (NEW.Building &lt;&gt; 'A1' OR NEW.Building &lt;&gt; 'A2') THEN EXCEPTION...

Условные операторы при определении нечетных чисел
Добрый день. Подскажите, как в моем случае сделать так, чтобы при вводе только одних нулей выдавалось соответствующее сообщение без вывода...

С++.Операторы в С++: условные операторы, операторы break и continue
Выяснить, пересекаются ли параболы у=аx2+bx+с и у=dx2+ex + f. При положительном ответе найти точки пересечения.

Условные операторы при работе с массивом целых чисел
Дан массив целых чисел. Выяснить верно ли, что сумма элементов, которые больше 20, превышает 100.


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store. И так: 1. Скачиваем с. . .
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге). Задача: Программно добавить префикс в нумерацию документов. Решение: В модуле объекта. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru