Застрял с выходом из цикла в C - PullRequest
0 голосов
/ 04 марта 2012

Проблема в том, что я не знаю, как выйти из моего цикла.

printf ("Do you order fish? (Y/N): ");
scanf  ("%c", &f);

while((f == 'y')||(f == 'Y'))
{
  do {
    fish = getfish_choice();
    printf ("Total of you fish is %.2lf\n", sum);
    printf ("Do you want to order more fish?(Y/N)");
    scanf  (" %c", &morefish);
  }
  while ((morefish=='Y')||(morefish=='y'));
}

Printf ("Hello");

Как я могу выйти из этого цикла, чтобы вывод моего кода читался как Hello?

Ответы [ 3 ]

2 голосов
/ 04 марта 2012

У вас есть цикл while, состояние которого включает проверку f. Но вы никогда не модифицируете f.

Так что, возможно, первый while должен быть if.

1 голос
/ 04 марта 2012

Что происходит, когда вводится Y или y, вам удается вырваться из внутреннего цикла, но вы все еще застряли во внешнем цикле. (f никогда не изменяется)

Вам даже не нужно две петли:

printf ("Do you order fish? (Y/N): ");
scanf  ("%c", &morefish);

while ((morefish=='Y')||(morefish=='y')){
    fish = getfish_choice();
    printf ("Total of you fish is %.2lf\n", sum);
    printf ("Do you want to order more fish?(Y/N)");
    scanf  (" %c", &morefish);
}

printf ("Hello");
1 голос
/ 04 марта 2012

Измените внешний цикл while на if: if(f == 'y'||f == 'Y')

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