c语言选择结构
关系运算
“条件”是在程序中用一个表达式来表示的(利用关系运算符)
关系表达式: 表达式 关系运算符 表达式
例如:a+b>c+d
逻辑运算
用逻辑运算符把两个或多个表达式连接
例如 x>1&&x<2
age<50||age>70
if语句
-if语句 单分支结构
if(表达式) {语句块}
if语句中检测到真的就会执行if,如果为假,则为跳到else执行任务
-if…else语句 双分支结构
if(表达式) {语句块1}
else {语句块2}
-if…else if…else 多分支结构
if语句的嵌套
#include <stido.h>
int main()
{
if(表达式)
{
if(语句块) {表达式};
else {表达式};
}
else{语句块}
}
比如假设一个题目,需要满足以下要求
y=0(x<0)
y=1(x>0)
y=2(x=0)
#include <stdio.h>
int main()
{
int x,y;
scanf("%d",&x);
if(x!=0);
if(x<0) y=0;
else y=1;
else y=2;
printf("x=%d,y=%d",x,y);
return 0;
}
其中if下面的if和else就是为if的内嵌
临近原则:else和if成对出现时,总是与最近的未配对的if配对
如果内嵌用分括号扩起来的话,就不符号临近原则了
例如这就是个经典错误
#include <stdio.h>
int main()
{
int x,y;
printf("请输入一个数\n");
scanf("%d",&x);
if (x>=0);
if(x>0) y=1;
else y=0
printf("%d",y);
return 0;
}
x>0 输出y=1和x<0输出y=0都没有错误
但是x=0时 无法输出要求的y=2
因为中间的if和else形成了配对导致x=0被else认为是除了x>0以外的条件
感谢阅览本次的选择结构总结