Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
AliceAlex
0 / 0 / 0
Регистрация: 15.11.2015
Сообщений: 34
1

Условие в цикле do while работает не так, как ожидается

10.03.2016, 22:40. Просмотров 486. Ответов 5
Метки нет (Все метки)

Проблема в условие цикла. Вот Код.
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
// ConsoleApplication4.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
#include <process.h>
#include <iomanip>
#include <conio.h>
using namespace std;
 
int main()
{
    char choice = 'a';
    float temp0, temp1;
    setlocale(LC_ALL, "Russian");
    cout << "Выберите метод перевода температуры:\n1.Из шкалы по Фаренгейту в шкалу по Цельсию \n2.Наоборот" << endl;
    do {
        choice = _getche();
 
    } while (choice != '1' || choice != '2');
    cout << "\nВы выбрали метод № " << choice << endl;
    switch (choice)
    {
    case '1':
        cout << "Введите температуру по Фаренгейту: ";
        cin >> temp0;
        cout << "K" << endl;
        temp1 = (temp0 - 32) * 5 / 9;
        cout << "Результат: " << temp1 << "C*" << endl;
        break;
    case '2':
        cout << "Введите температуру по Цельсию: ";
        cin >> temp0;
        cout << "C*" << endl;
        temp1 = temp0 * 9 / 5 + 32;
        cout << "Результат: " << temp1 << "К" << endl;
        break;
    }
 
 
    system("pause");
    return 0;
}
Почему-то при нажатии '1' или '2' не происходит выход из цикла. А если оставить одно из условий - то выходит из цикла. Как оставить два условия и чтобы при этом программа работала?Заранее Спасибо
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.03.2016, 22:40
Ответы с готовыми решениями:

#define работает не так, как ожидается
Здравствуйте. Подскажите, пожалуйста, почему в таком случае некорректно использовать #define: ...

Почему цикл работает не так, как ожидается?
Двумя способами реализовал цикл, который увеличивает годовую зарплату на 10% при нажатии 'y' до тех...

Прочитать символы из файла, используя eof() (программа работает не так, как ожидается)
Здравствуйте, мне нужно прочитать символы из файла(желательно с пробелами). Использую eof(), но...

Пользовательская функция работает не так, как ожидается: найти причины странного поведения функции
Ребята помогите, пожалуйста. Создаю функцию суммы дробных чисел, но она ничего не возвращает, экран...

Почему при вводе элементов массива, программа прекращает работу или работает не так, как ожидается?
При вводе элементов массива, программа прекращает работу или не правильно работает. Например если...

5
Juffin
51 / 51 / 24
Регистрация: 24.12.2011
Сообщений: 133
10.03.2016, 22:43 2
C++
1
(choice != '1' || choice != '2')
Перечитай еще раз свое условие.


(Нужно поменять != на ==).
0
Леонид1300
3 / 3 / 1
Регистрация: 03.03.2016
Сообщений: 86
10.03.2016, 22:43 3
Значит у вас нет связки кода ,или код написан с ошибкой, устраните его и все будет , ОК!
0
Peoples
Эксперт С++
1432 / 900 / 775
Регистрация: 06.02.2016
Сообщений: 2,374
Записей в блоге: 19
Завершенные тесты: 5
10.03.2016, 22:49 4
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
#include <iostream>
#include <process.h>
#include <iomanip>
#include <conio.h>
using namespace std;
 
int main()
{
    char choice = 'a';
    float temp0, temp1;
    setlocale(LC_ALL, "Russian");
    cout << "Выберите метод перевода температуры:\n1.Из шкалы по Фаренгейту в шкалу по Цельсию \n2.Наоборот" << endl;
    do {
        choice = _getche();
 
    } while (choice ==1 || choice == 2);
    cout << "\nВы выбрали метод № " << choice << endl;
    switch (choice)
    {
    case '1':
        cout << "Введите температуру по Фаренгейту: ";
        cin >> temp0;
        cout << "K" << endl;
        temp1 = (temp0 - 32) * 5 / 9;
        cout << "Результат: " << temp1 << "C*" << endl;
        break;
    case '2':
        cout << "Введите температуру по Цельсию: ";
        cin >> temp0;
        cout << "C*" << endl;
        temp1 = temp0 * 9 / 5 + 32;
        cout << "Результат: " << temp1 << "К" << endl;
        break;
    }
 
 
    system("pause");
    return 0;
}
0
AliceAlex
0 / 0 / 0
Регистрация: 15.11.2015
Сообщений: 34
10.03.2016, 23:03  [ТС] 5
Спасибо!
0
-ДоМоВоЙ-
150 / 149 / 124
Регистрация: 19.01.2016
Сообщений: 578
Записей в блоге: 1
Завершенные тесты: 1
10.03.2016, 23:38 6
Цитата Сообщение от Леонид1300 Посмотреть сообщение
Значит у вас нет связки кода ,или код написан с ошибкой, устраните его и все будет , ОК!
Леонид1300, Вы сама ОЧЕВИДНОСТЬ!
0
10.03.2016, 23:38
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.03.2016, 23:38

Почему malloc работает не так, как ожидается?
int main() { int* p =malloc(sizeof(int)); p=5; printf(&quot;%s\n&quot;,strerror(errno)); ...

ConstraintSet работает не так как ожидается в Handler
Делаю визуализацию сортировки. Сначала хочу реализовать swap. Два элемента подсвечиваются красным,...

Код работает не так, как ожидается (найти и исправить ошибки)
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt; char deletika(char a, long ot, long...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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