循环语句问题

时间:2014-01-23 22:32:04

标签: c loops while-loop stdio

在我的课程结束时,我想询问用户是否要退出。

问题:我想创建一个循环,如果用户输入nN,则会将用户发送到开头(A点),或者 如果他输入yY,或者进入程序中间(B点),如果他输入其他任何内容,则直到我的程序结束(C点)。

我如何实现这一目标?

#include <stdio.h> 
int main()
{
  char exit=n;
  A POINT
  // imagine here some stuff
  // some more stuff
  // just a bit more junk
  // some other C statements
  B POINT
  printf("wana exit? press y/n);
  scanf("%c", &exit);
  C POINT
  return 0;
}

2 个答案:

答案 0 :(得分:0)

您可以将main中的整个代码包装在do { ... } while (false)中,并使用continue;返回顶部,break;退出循环,例如:< / p>

main() {
    do {
        // your code
        if (exit == 'n')
            continue;
    } while (false);
}

PS:您可以使用goto,但这是非常气馁的,所以最好不要开始使用它。

答案 1 :(得分:0)

这是非常基本的。您真正要问的是如何根据有效响应控制主循环,并继续询问响应是否无效。一种方法是使用该值作为循环条件。

do {

    // etc etc...


    // Ask question until yes or no answer
    do {
        printf("Wanna exit? Press y/n\n");
        if( 1 != scanf("%c", &exit) ) {
            printf("Input failed.  Exiting.\n");
            exit = 'y';
        }
        exit = tolower(exit);
    } while(exit != 'y' && exit != 'n');

} while(exit != 'y');

其他方法使用循环控制结构,例如breakcontinue。这里已经有了答案。