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用法的主要内容,如果未能解决你的问题,请参考以下文章