2016-10-06 2 views
-4

В следующем коде у меня возникает эта проблема, когда я запускаю ее при первом запуске, но при последующих циклах, когда я выбираю вариант 1, ничего не появляется, просто идет Вернемся к «меню», он работает только в первый раз, ни разу после этого, может кто-нибудь объяснить проблему?Пока цикл в цикле If в цикле while

#include <iostream> 
#include <string> 
#include <vector> 
using namespace std; 

int main() 
{ 
    int choice=0; 
    while(choice != 2){ 
     cout << "(1)Create" << endl; 
     cout << "(2)Exit" << endl; 
     cin >> choice; 
     if(choice == 1){ 
      int choice2; 
      while(choice2 != 7){ 
       cout << "You chose one " << endl; 
       cin >> choice2; 
      } 
     } 
    } 
} 
+3

Вам повезло! Сегодня на stackoverflow.com мы запускаем одноразовую рекламу под названием «Ответ на свой вопросный день». Мы тайно разместили на вашем компьютере очень продвинутый инструмент, называемый «отладчиком». Используя эту самую современную технологию, вы можете выполнять свою программу по мере ее выполнения, по одной строке за раз, а также проверять значения всех переменных и определять, почему именно ваш код делает то, что он делает, все самостоятельно ! Не упустите эту увлекательную возможность ответить на собственный вопрос. Только сегодня, на stackoverflow.com! –

+0

Это необходимо ?, Я новичок в этом, и у меня возникают проблемы, это логическая проблема, а не проблема с кодом, поэтому отладчик не поможет – Xavier

+0

@ Xavier вы можете предоставить образец ввода, который вы дали. Кроме того, вы получите полученный образец. – PRP

ответ

0

Я не понимаю ваш вопрос, но это сработало для меня отлично ... (действительно тот же код, просто аккуратный).

int main() 
{ 
int choice = 0; 

    while (choice != 2) 
    { 
     std::cout << "(1)Create" << std::endl; 
     std::cout << "(2)Exit" << std::endl; 

     std::cin >> choice; 

     if (choice == 1) 
     { 
      int choice2 = 0; 

      while (choice2 != 7) 
      { 
       std::cout << "You chose one " << std::endl; 
       std::cin >> choice2; 
      } 
     } 
    } 
    return 0; 
} 
+0

Большое вам спасибо за помощь nrocboc как-то, чем choice2 = 0 делает все, что вы думаете, почему это – Xavier

+0

choice2 никогда не возвращался к чему-то, кроме 7. – nrocboc

+0

благодарю вас за помощь и не являюсь saracastic ******* – Xavier

0

Проблема может быть, вы не инициализировали переменную choice2 после объявления, а это означает, что она содержит значения мусора.

+0

nrocboc exaplained это для меня, но одна вещь, которую я не получаю, если choice2 содержал значения мусора, когда я нажал один, почему он просто пропустил весь цикл while, а не попал в бесконечный цикл, просто любопытно – Xavier

+0

когда вы ввели 1 для выбора 2 во внутреннем цикле, он не попадет в бесконечный цикл, он будет ждать, пока вы дадите другой выбор2 в cin >> choice2, потому что choice2! = 7, попробуйте и используйте отладку, вы поймете, проблема –

Смежные вопросы