pepsi02 2021-02-05 16:22 采纳率: 87.5%
浏览 60
已采纳

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条回答 默认 最新

  • 泡视界 2021-03-04 18:43
    关注

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

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

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

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

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺
  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题