if常见错误及ifelse用法

Posted chrr

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了if常见错误及ifelse用法相关的知识,希望对你有一定的参考价值。

问题一:if只能控制一个语句,除非加个大括号变成语句块

  例子1:

  if(2>1)

    printf("aaa");

    printf("bbb");

结果会打印  aaabbb

 

  例子2:

  

  if(2>1)

{    

  printf("aaa");

        }

    printf("bbb");

结果会打印aaa

 

问题二:if后面加分号(if后面不能加分号)

 

例子1:

 if(1>2);

  printf("aaa");

结果会打印aaa,相当于if控制了一个空语句

 

问题三:只有else,没有if

 

例子1:

 if(1>2);

  printf("aaa");

 else

  printf(‘bbb");

运行以上代码,结果会报错,因为这里if只控制一行代码,这行代码执行完之后应该立即出现else,然而这里没有立即出现else,导致else接不上if

本例运行完if控制的空语句之后,没有立即出现else,而是隔了一行printf代码

总结:else只能出现在if控制的语句执行完毕之后的位置

 

问题四:else后面加逻辑表达式

if(表达式1)

              A:

else (表达式2)

    B;

运行以上代码,程序会报错,因为else  后面不能添加逻辑表达式

 

问题五:if , else if , else 控制的语句中,只能执行一个

if(表达式1)

              A:

else if(表达式2)

    B;

A和B不可能同时执行,表达式1不成立时才考虑表达式2

                             表达式1和2同时成立,也只会执行A

if和else语法小结

if后面加括号,括号里面写逻辑表达式,括号外面不加分号

下一行写个大括号,把你要控制的语句写到大括号里

写完if要控制的语句之后,写else if ,后面同样加一个括号,括号里面写逻辑表达式,括号外不加分号

同样把要控制的语句写到大括号里

用上大括号后,很明显if和 else if 和else之间其实不能有分号,

if (delta > 0)
{
x1 = (-b + sqrt(delta)) / (2*a);
x2 = (-b - sqrt(delta)) / (2*a);
printf("该一元二次方程有两个解,x1 = %f, x2 = %f ", x1, x2);
}
else if (0 == delta)
{
x1 = (-b) / (2*a);
x2 = x1; //左边值赋给右边
printf("该一元二次方程有一个唯一解,x1 = x2 = %f ", x1);
}
else
{
printf("无解 ");
}

 

以上是关于if常见错误及ifelse用法的主要内容,如果未能解决你的问题,请参考以下文章

C++初级static用法总结问题探讨及常见错误排查

Javascript·常见错误及用法习惯(新手入门)

kubectl常见命令及错误排除

json用法常见错误

并发编程WaitGroup 基本用法和如何实现以及常见错误

Vue常见错误及解决方法: