pepsi02
pepsi02
采纳率77.8%
2021-02-05 16:22

continue循环的问题

已采纳

#include<stdio.h>
int main(void)
{
    char ch;
    while ((ch = getchar()) != '#')
    {
        if (ch != '\n')
            continue;
        
            printf("step 1\n");
            if (ch == 'c')
                continue;
            else if (ch == 'b')
                break;
            if (ch == 'h')
                goto laststep;
                    printf("step 2\n");
                    laststep:printf("step 3\n");
                
    }
    printf("done\n");
    return 0;


}我输入字符a为什么 输出是123 123.怎么循环2次呢。好奇怪!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

5条回答

  • weixin_42910064 泡视界 1月前

    如果第七行改成if(ch=='\n') 那不就是:每次输入字符后回车,都被continue给循环到while的位置,又要重新输入了。可我演示的时候输入a,后面的printf还是继续输出123

    为什么没有跳转到while,提示继续输入。而是屏幕显示123呢.

    ………………ch是一个字符,不是一个字符串,如果你输入字符后回车,那么ch就是你输入的这个字符,你后面的那个回车是没有输入进来的。

    因此你输入a+回车,会继续输出123.

    当你直接输入回车,那么ch就是回车,if(ch=='\n')成立,然后就continue 到while

    点赞 2 评论 复制链接分享
  • niaonao niaonao 2月前

    就一次啊,你这段代码我直接运行的

    点赞 1 评论 复制链接分享
  • pepsi02 pepsi02 2月前

    有没有懂的小哥,给讲解一下吧。实在找不到答案!强迫症伤不起~~~

    点赞 评论 复制链接分享
  • pepsi02 pepsi02 2月前

    好难,就是想不明白!

    点赞 评论 复制链接分享
  • pepsi02 pepsi02 2月前

    请教大佬,如果第七行改成if(ch=='\n') 那不就是:每次输入字符后回车,都被continue给循环到while的位置,又要重新输入了。可我演示的时候输入a,后面的printf还是继续输出123

    为什么没有跳转到while,提示继续输入。而是屏幕显示123呢.

    点赞 评论 复制链接分享