喜迎
春节

结构设计的坑


1.if语句常见的坑

1.1 else悬挂

else始终与最接近它的匹配

所以下面的这个else匹配的是if(isRain)的,并不是isFree的。

if (isFree == 'Y')
      if (isRain == 'Y')
          printf("记得带伞\n");

 else // 我们的这个else是希望是,如果不是free的话,就输出没空,但是
 {
          printf("没空\n") ;
 }

如果想要匹配isFree的if只需要在后面加一个大括号就可。

if (isFree == 'Y')
{
      if (isRain == 'Y')
          printf("记得带伞\n");

}else // 我们的这个else是希望是,如果不是free的话,就输出没空,但是
 {
          printf("没空\n") ;
 }

1.2==和=号

if(isFree = 'y')
{
    。。。
}
else
{
    。。。
}

这时就会默认的执行isFree下面的代码块,因为把‘y’赋值给了isFree。不要弄混了。

2. for语句和while语句的坑

首先两个函数并不是完全等价的,两个有不同之处

int main()
{
    int i ;
    for(i = 0 ; i <= 100 ;i++)
    {
        if(i % 2 )
        {
            continue ;
        }
        return 0 ;
    }
}

将上面的代码改成相同的while循环的形式

这样改代码不会报错,但是这个是错误的方法。进入了死循环。
int main()
{
    int i = 0 ;
    while(i <= 100)
    {
        i++ ; //更改在这里就可以了
        if(i % 2)
        {
            continue ;
        }
        //i++ ;  错误的更改方式
    }
}

2.1while语句和for语句的区别

区别在于出现continue语句的时候*,while语句会直接跳过while语句后面的语句,进入下一次循环,然后因为i的迭代在continue的后面被跳过了,所以不会改变,一直是那个值,进入死循环。

for语句不会这样,continue会跳到,迭代变量的那里,i++


文章作者: ljhaa
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 ljhaa !
评 论
 上一篇
数组相关
数组相关
1.一维数组1.1.数组的定义 c99中后来是支持定义动态数组的 1.2数组的初始化 ​ 2.二维数组2.1数组的定义 2.2数组的访问 2.3数组的初始化 二维数组初始化,只有第一维可以不写长度,其他维度必须写上。 3
2023-04-18
下一篇 
运算符以及优先级和结合性
运算符以及优先级和结合性
1.算数运算符需要注意的是 求余运算,必须是int类型才可以 2.运算符的优先级和结合性普通的数学里面是,先乘除后加减 但是如果一个表达式里面存在多种不同的运算符 , 则需要考虑运算符的优先性和结合性的问题 优先级是用来标识运算符在表达式
2023-04-18
  目录