【问题标题】:nested if statment in a while loop C在while循环C中嵌套if语句
【发布时间】:2015-10-23 22:25:39
【问题描述】:

所以我有以下代码,想知道为什么它不会被执行

int main() {
char select;
printf("Select q to quit\n");
while ((select = getchar()) != 'q') {
    if(select == 'a') {
        printf("You have not selected q\n");
        printf("Select q to quit\n");
    }
return 0;
}

所以当 select 为字符选择说 'a' 时,它不会进入 if 语句。这是为什么呢??

【问题讨论】:

  • 您是否尝试过打印select 以确保它是“a”?
  • 是的,由于某种原因,它通过了两次循环......我得到它打印“aa”

标签: loops if-statement while-loop


【解决方案1】:

对我来说,这段代码是在 OSX 上工作的。但是你遇到的问题是,如果你按 a,它也会退出。所以只需移动“返回0”

int main() {
char select;
printf("Select q to quit\n");
while ((select = getchar()) != 'q') {
    if(select == 'a') {
        printf("You have not selected q\n");
        printf("Select q to quit\n");
    }
}
return 0;

你好 :)

【讨论】:

  • int main() { 字符选择; printf("选择q退出:"); while ((select = getchar()) != 'q') { if(select != 'q') { printf("你还没有选择 q\n"); printf("选择q退出:"); } } 返回 0; }
  • 这是更新的...你能告诉我为什么如果 select 不等于 q 它会打印两次 if 语句吗?
  • 我认为它也得到了字符串终止符 "\0" Quick&Dirty 解决方法:忽略字符串终止符。
猜你喜欢
  • 1970-01-01
  • 2016-10-30
  • 2023-03-30
  • 1970-01-01
  • 2017-02-06
  • 2013-08-18
  • 2020-06-22
  • 2015-12-28
  • 1970-01-01
相关资源
最近更新 更多