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

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

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

do while - почему выполняется цикл, даже если условие истина? - C++

27.09.2012, 15:23. Просмотров 504. Ответов 5
Метки нет (Все метки)

Подскажите пожалуйста, пишу программу вопрос/ответ. При не правильным вводе ответа, программа должна выводить сообщение об ошибке.
Вопрос. Почему хоть и вводится правильный ответ, программа выводит сообщение об ошибке, и только при повторном вводе ответа, переходит к следующему вопросу, что ни так?

C++
1
2
3
4
5
6
7
8
9
10
      for (int i=1; i < n; i++){
     
       cout << question(i) << endl;
        getline(cin,str);
     do {
         cout << "Ответ не верный, попробуйте ввести еще раз." << endl;    
         getline(cin,str);
         }while(str !=answer(i));
  
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2012, 15:23     do while - почему выполняется цикл, даже если условие истина?
Посмотрите здесь:

Программа, выводящая значение "истина", если выполняется заданное условие: все из чисел x, y, z являются положительными - C++
Написать программу, выводящую значение истина если выполняется заданное условие. Указанные в варианте переменные ввести с клавиатуры ...

Почему условный оператор даже, если условие неверно, выдает истину? - C++
void change() { int tmp = 0; do { tmp = 0; cout &lt;&lt; &quot;Napishite Nazvanie, Regisera filma&quot; &lt;&lt; endl; char chName;...

Почему не срабатывает if, если истина? - C++
Вообщем задание на двумерную динамику. Есть 2 кучки камней. Входной файл содержит 3 строчки в первых двух - команды которые можно...

Почему всегда выполняется условие? - C++
Здравствуйте, имеется код int main(int argc,char *argv) { clrscr(); if(argv != &quot;aaa&quot;) { printf(&quot;Error 2&quot;); ...

Почему не выполняется цикл? - C++
Здравствуйте. Вот код: int main() { vector &lt;Book&gt; books; Book item = Book(); bool flag = true; char ans =...

Как выйти?, если условие не выполняется - C++
Я хотел сделать уравнение, всё пашет, но опять не получается с выходом после &quot;RESHENIY NET&quot;. Например ввожу х=-1 и мне ввыводит сообщение...

Почему цикл выполняется бесконечно? - C++
Объясните кто-нибудь, почему этот код #include &lt;iostream&gt; #include &lt;cstdlib&gt; int main() { int array1; ...

Не выполняется условие или почему данные все равно переползают в S2? - C++
Всем привет! Почему в строке S2 тоже заносятся пятерки, когда их туда не должно пускать условие? И что перед пятерками накалякано тут? ...

Даны действительные числа A, B, C, D. Каждое число заменить наибольшим из них, если выполняется условие - C++
Даны действительные числа A,B,C,D. Если A&lt;=B&lt;=C&lt;=D, то каждое число заменить наибольшим из них; если A&gt;B&gt;C&gt;D, то числа оставить без...

Написать программу, в результате выполнения которой булевская переменная t получает значение TRUE, если выполняется заданное условие... - C++
Написать программу, в результате выполнения которой булевская переменная t получает значение TRUE, если выполняется заданное условие, и...

Двойной цикл: нужно получить первое значение если выполнится условие - C++
есть двойной цикл и нужно получить первое значение если выполнится это условие if (!field-&gt;IsWin()) получаем значения и останавливаем циклы...

Найдите ошибку в задаче: "дана матрица, если выполняется условие, то следует исполнить преобразование.." - C++
// labar4.cpp : main project file. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;string.h&gt; #include...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vourhey
Почетный модератор
6474 / 2249 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
27.09.2012, 15:24     do while - почему выполняется цикл, даже если условие истина? #2
DDim1000, а ты сам-то даже по последовательности кода не видишь, где проверка-то на ввод?
Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
27.09.2012, 15:25     do while - почему выполняется цикл, даже если условие истина? #3
Приведите код полностью.
[WRG]
51 / 51 / 9
Регистрация: 20.11.2011
Сообщений: 243
Записей в блоге: 1
27.09.2012, 15:42     do while - почему выполняется цикл, даже если условие истина? #4
цикл do-while с постпроверкой условия и всегда выполняется как минимум один раз. циклы for и while могут не выполниться ниразу, в зависимости от условия
DDim1000
1 / 1 / 0
Регистрация: 17.12.2011
Сообщений: 238
27.09.2012, 16:20  [ТС]     do while - почему выполняется цикл, даже если условие истина? #5
Цитата Сообщение от Gepar Посмотреть сообщение
Приведите код полностью.
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include <iostream>
#include <string>
#include <Windows.h>
 
using namespace std;
 
const int n=15;
      
char *riddle(int);
char *answer(int);
int *ko[]={};
 
int main()
{
      setlocale(LC_ALL, "Russian"); 
      using std::cin;using std::cout;using std::endl;using std::string;using std::getline;
       SetConsoleCP (1251); SetConsoleOutputCP (866);
      string str;
 
      for (int i=1; i < n; i++){
 
     
       cout << riddle(i) << endl;
        getline(cin,str);
     do {
         cout << "Error" << endl;    
         getline(cin,str);
         }while(str !=answer(i));
  
    
 
}
       system("pause"); 
}      
 
 
 
 
char *riddle (int k)  
{
      static char *name[] = {
                              "none","ГЌГҐ åçäîê, Г* Г±Г® øïîðГ*ìè, ГЌГҐ áóäèëüГ*ГЁГЄ, Г* ГўГ±ГҐГµ áóäèò.",
                              "ГЋГ*Г* ГЄГ°Г*Г±ГЁГўГ* ГЁ ìèëГ*, ГЂ èìÿ ГҐГ© îò ñëîâГ* ''çîëГ*''.",
                              "ÂåðåùóГ*ГјГї áåëîáîêГ*, ГЂ çîâóò ГҐГҐ ... "
                              
                            };
      return (k<1||k>12)?name[0]:name[k];
}
 
 
 
char *answer (int k)  
{
      static char *name2[] = {
                              "none","ГЏГҐГІГіГµ",
                              "ÇîëóøêГ*","ÑîðîêГ*"
                            };                            
      
      return (k<1||k>12)?name2[0]:name2[k];
 
 
    cin.sync();
    cin.get();
    return 0;
    
 
}
co6ak
Кошковед
407 / 500 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
27.09.2012, 16:47     do while - почему выполняется цикл, даже если условие истина? #6
Цитата Сообщение от [WRG] Посмотреть сообщение
цикл do-while с постпроверкой условия и всегда выполняется как минимум один раз. циклы for и while могут не выполниться ниразу, в зависимости от условия
12345
Yandex
Объявления
27.09.2012, 16:47     do while - почему выполняется цикл, даже если условие истина?
Ответ Создать тему
Опции темы

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