标签:报错 之间 语句 执行 二次 bbb 常见错误 次方 语法
问题一: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\n", x1, x2);
}
else if (0 == delta)
{
x1 = (-b) / (2*a);
x2 = x1; //左边值赋给右边
printf("该一元二次方程有一个唯一解,x1 = x2 = %f\n", x1);
}
else
{
printf("无解\n");
}
标签:报错 之间 语句 执行 二次 bbb 常见错误 次方 语法
原文地址:https://www.cnblogs.com/chrr/p/12359576.html