3 / 3 / 0
Регистрация: 17.12.2011
Сообщений: 517
1

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

27.09.2012, 15:23. Показов 2065. Ответов 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));
  
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.09.2012, 15:23
Ответы с готовыми решениями:

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

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

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

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

5
Почетный модератор
7392 / 2638 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
27.09.2012, 15:24 2
DDim1000, а ты сам-то даже по последовательности кода не видишь, где проверка-то на ввод?
0
1186 / 542 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
27.09.2012, 15:25 3
Приведите код полностью.
0
53 / 53 / 37
Регистрация: 20.11.2011
Сообщений: 243
Записей в блоге: 1
27.09.2012, 15:42 4
цикл do-while с постпроверкой условия и всегда выполняется как минимум один раз. циклы for и while могут не выполниться ниразу, в зависимости от условия
1
3 / 3 / 0
Регистрация: 17.12.2011
Сообщений: 517
27.09.2012, 16:20  [ТС] 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;
    
 
}
0
Кошковед
521 / 509 / 63
Регистрация: 12.04.2010
Сообщений: 1,390
27.09.2012, 16:47 6
Цитата Сообщение от [WRG] Посмотреть сообщение
цикл do-while с постпроверкой условия и всегда выполняется как минимум один раз. циклы for и while могут не выполниться ниразу, в зависимости от условия
12345
0
27.09.2012, 16:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.09.2012, 16:47
Помогаю со студенческими работами здесь

Почему если условие входа в цикл не выполняется, функция заново входит в цикл
Сам код: private void traverse_node(TreeControlItem node) { TreeControlItem...

Почему выполняется условие else, если выполнилось условие if?
При вводе буквы, которое есть в переменной word, по идеи, если такой буквы нету, то должно выдать...

Не распознается второй Scanner в while; если даже в цикле while ввожу "N", цикл while выполняется
Scanner scanner = new Scanner(System.in); System.out.println(&quot;Ввести заметку?&quot;); String...

Вывести на экран "условие выполняется", если все элементы массива положительные и "условие не выполняется", если это не так.
1)Тип массива вещественный.Число элементов 11. Вывести на экран &quot;условие выполняется&quot;, если все...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru