单分支if语句
1. 一般形式
单分支if语句是最简单的条件判断语句,其一般形式为:
if(表达式) 语句;
或者
if(表达式)
语句;
2. 执行流程图
单分支if语句的执行流程图如下:
先判断“表达式”的值,如果值为真(非零),则执行“语句”;如果值为假(零),则不执行语句。
3. 几点说明
(1)if(表达式) 中的“表达式”可以是任何符合C语言语法的表达式,其值为“非零”表示真;其值为“零”表示假。
(2)if(表达式) 只能自动结合一条语句,如果有多条语句,必须用花括号括起来构成复合语句(格式如下),因为复合语句在语法上相当于一条语句。如果仅有一条语句,则可以省略花括号。
if(表达式)
{
语句;
}
4. 关于“单分支if语句”的常见错误
例1:从键盘输入两个数到a、b中,编程总是把较大数放在变量a中,较小数放在变量b中。
执行的流程图如下:
程序代码为:
#include
int main( )
{
int a, b, t;
printf("请输入2个整数:");
scanf("%d%d", &a, &b);
if(a < b)
{
t = a;
a = b;
b = t;
}
printf("较大值: %d, 较小值: %d\n", a, b);
return 0;
}
错误1:关于分号的错误。
不少初学者会在“if(表达式)”后面加分号,由于一个单独的分号属于一条空语句,会被if结合,造成本来应属于if的语句体不能被if结合。
例如:(与例1中的 if 语句比较)
if(a < b);
{
t = a;
a = b;
b = t;
}
其执行程序的流程图为:
错误2:关于缺花括号错误。
当 if 的语句体有多条语句时,却没有用花括号括起来,if 语句只有第一个语句结合,引起逻辑错误。
例如:(与例1中的 if 语句比较)
if(a < b)
t = a;
a = b;
b = t;
其执行程序的流程图为: