fuze11 发表于 2020-5-8 11:36:01

求大神看看,这是什么意思

#include <stdio.h>
main()
{
        int i,j;
        for(i=1;i<=9;i++)
        {
                for(j=1;j<=9;j++)
                {
                        if(i<=j)就是这里,我一开始打的时候多加了一个分号(我知道分号是指一个语句的结束但为什么会这样)
                        {
                                printf("%d*%d=%-2d",i,j,i*j);
                        }
                }
                putchar('\n');
        }
}

qiuyouzhi 发表于 2020-5-8 11:37:35

会哪样?

fuze11 发表于 2020-5-8 11:39:07

qiuyouzhi 发表于 2020-5-8 11:37
会哪样?

输出从三角形的,变成矩形

KevinHu 发表于 2020-5-8 11:42:12

如果在if后面加一个分号,那说明if语句到分号那里就结束了,后面的代码块就不归if控制了,无论如何那个代码块都会执行(因为没有条件限制了)

qiuyouzhi 发表于 2020-5-8 11:42:50

fuze11 发表于 2020-5-8 11:39
输出从三角形的,变成矩形

加了个分号代表什么都不做,所以,代码会变成这样:

#include <stdio.h>
main()
{
      int i,j;
      for(i=1;i<=9;i++)
      {
                for(j=1;j<=9;j++)
                {      
                        printf("%d*%d=%-2d",i,j,i*j);
                }
                putchar('\n');
      }
}

fuze11 发表于 2020-5-8 11:43:28

KevinHu 发表于 2020-5-8 11:42
如果在if后面加一个分号,那说明if就是一个判断语句,后面的代码块就不归if控制了

是这样啊,我一直以为if是和后面的是一个代码块,,谢谢大神

PC_ 发表于 2020-5-8 11:44:26

众所周知分号代表语句的结束if后加分号代表什么 ?
代表如果条件成立执行的是空语句那么花括号中的语句代表什么 ?
代表着无论if中条件成不成立都执行那个语句编译器把它看成了一个代码段
所以加分号会出现99乘法表显示错误的现象{:10_257:}
页: [1]
查看完整版本: 求大神看看,这是什么意思