a13766971255 发表于 2021-1-29 13:43:45

if 的问题

while (i++)
      {
                if (i > 10)
                {
                        goto Label;
                }
                putchar('B');
      }
这里面的putchar执行时用不用看if成立?

不想起名字a 发表于 2021-1-29 13:58:31

如果你是想要if成立的话需要用大括号括住putchar语句;即if条件满足时会执行大括号括住的内容;如果没有大括号,则执行第一个分号前的语句。

李京 发表于 2021-1-29 13:58:49

要的,
因为你if语句里面的代码块有goto语句
执行了goto语句之后,如果跳到了putchar之后就不执行了,但是在之前的话,还是执行的

昨非 发表于 2021-1-29 13:59:37

不影响,无论if是否成立
每次循环都会执行putchar

不想起名字a 发表于 2021-1-29 14:01:00

不想起名字a 发表于 2021-1-29 13:58
如果你是想要if成立的话需要用大括号括住putchar语句;即if条件满足时会执行大括号括住的内容;如果没有大 ...

所以这个代码putchar语句的执行不用看if是否成立

李京 发表于 2021-1-29 14:03:10

本帖最后由 李京 于 2021-1-29 14:05 编辑

不想起名字a 发表于 2021-1-29 14:01
所以这个代码putchar语句的执行不用看if是否成立

要看,,,
这就要看你的goto语句跳到哪里了
例如这样

while (i++)
      {
                if (i > 10)
                {
                        goto Label;
                }
                putchar('B');
                Label:;
      }
if成立,putchar就不执行
页: [1]
查看完整版本: if 的问题