if语句
在C语言中也经常需要对一些条件作出判断,从而决定执行哪一段代码,这时就需要使用选择结构语句。if条件语句有三种语法格式。
- if
- if..else
- if..else if..else(嵌套)
if语句——单分支结构
if...else语句——双分支结构
if..else if..else
在一个if语句中还可以包含一个或多个if语句,这称为if语句的嵌套。
switch语句
switch条件语句也是一种常用的选择语句,和if条件语句不同,它只能针对某个表达式的值作出判断,从而决定程序执行哪一段代码。
关系运算与逻辑运算
运算符类型 | 作用 |
算数运算符 | 用于处理四则运算 |
赋值运算符 | 用于将表达式的值赋值给变量 |
逻辑运算符 | 用于表达式的比较,并返回一个真值或假值 |
三目运算符 | 用于根据表达式的值执行相应的语句 |
逗号运算符 | 用于连接并执行若干表达式,并返回最后一个表达式的值 |
位运算符 | 用于处理数据的位运算 |
sizeof运算符 | 用于求字节数长度 |
关系运算符
关系运算符用于对两个数值或变量进行比较,其结果是一个逻辑值(“真1”或“假0)。
运算符 | 运算 | 范例 | 结果 |
== | 相等于 | 4==3 | 0 |
!= | 不等于 | 4!=3 | 1 |
< | 小于 | 4<3 | 0 |
> | 大于 | 4>3 | 1 |
<= | 小于等于 | 4<=3 | 0 |
>= | 大于等于 | 4>=3 | 1 |
逻辑运算
逻辑运算符用于判断数据的真假,其结果仍为“真”或“假”。
运算符 | 运算 | 范例 | 结果 |
! | 非 | !a | 如果a为假,则!a为真;如果a为真,则!a为假 |
&& | 与 | a&&b | 如果a和b都为真,则结果为真否则为假 |
|| | 或 | a||b | 如果a和b有一个或一个以上为真,则结果为真,二者都为假,结果为假 |
- 实例1
输入一个学生的成绩score,判断是否几个(>=60,及格)。
#include<iostream>
using namespace std;
int main()
{
float score;
cin>>score;
if(score>=60)
cout<<"及格"<<endl;
else
cout<<"不及格"<<endl;
return 0;
}
- 实例2
#include<iostream>
using namespace std;
int main()
{
float score;
cin>>score;
if(score>=70)
if(score<80)
cout<<"中等"<<endl;
else if(score<90)
cout<<"良好"<<endl;
else
cout<<"优秀"<<endl;
else if(score>=60)
cout<<"及格"<<endl;
else
cout<<"不及格"<<endl;
return 0;
}
- 实例3
输入一个年份,判断其是闰年还是平年(非整百年:能被4整除的为闰年;整百年:能被400整除的是闰年。)。
#include<iostream>
using namespace std;
int main()
{
int year;
cin>>year;
if((year%4==0&&year%100==0)||(year%400==0))
{
cout<<"这一年是闰年。"}<<endl;
else
{
cout<<"这一年是平年。"<<endl;
}
return 0;
}
- 实例4
输入一个整数,判断其是否为水仙花数。(所谓的水仙花数是值一个n位数(n>=3),它的每个位上的数字n次幂之和等于本身。例如3位数153是水仙花,各位数字的立方和1^3+5^3+3^3=153).
#include<iostream>
using namespace std;
int main()
{
int num,a,b,c;
cin>>num;
a=num%10
b=(num/10)%10;
c=num/100;
if (num==(a*a*a+b*b*b+c*c*c))
cout<<num<<"是水仙花数"<<endl;
else
{
cout<<"不是水仙花数"<<endl;
}
return 0;
}
- 实例5
输入一个月份,判断属于什么季节(阳历3-5月为春季,6-8月为夏季,9-11月为秋季,12月-来年2月为冬季。)
#include<iostream>
using namespace std;
int main()
{
int month,season=0;
cin>>month;
if(3<==month&&month<=5)
season=1;
else if(6<=month&&month<=8)
season=2;
else if(9<=month<=11)
season=3;
else if((1<=month<=2||(month==12))
season=4;
switch(season)
{
case 1:
cout<<"春季"<<endl;
case 2:
cout<<"夏季"<<endl;
case 3:
cout<<"秋季"<<endl;
case 4:
cout<<"冬季"<<endl;
break
default: cout<<"输入的月份不对!"<<endl;
}
return 0;
}
特别注意:
- ==运算千万不要写成赋值=
例如:if(a==b)不是if(a=b)
- 优先级
&&优先级高于||
&&、||优先级低于关系运算
!优先级高于所有关系运算和算术运算
- swith语句
swith语句执行完一个case之后不会自动停止,如果需要停止,必须使用break语句
switch语句中的每一个case必须是一个单独的值。这个值必须是整数或字符,不能是浮点数。如果涉及取值范围、浮点测试、或比较,则先使用if else转换。