⼩甲鱼笔记C语⾔⼊门(三)——分⽀结构,运算符优先级,if语句注意事项,
三⽬运算,Switch语句
表达式优先级
()(⼩括号),[](数组下标).(结构成员)->(指针型结构成员)最⾼
!(逻辑⾮).(位取反)-(负号)++(加1)–(减1)&(变量地址)
*(指针所指内容)type(函数说明)sizeof(长度计算)
*(乘)/(除)%(取模)
+(加)-(减)
<<(位左移) >>(位右移)
<(⼩于)<=(⼩等于)
>(⼤于)>=(⼤等于)==(等于) !=(不等于)
&(位与)
^(位异或)
| (位或)
&&(逻辑与)
| | (逻辑或)
:(表达式)
= += -=(联合操作)
,(逗号运算符)最低⼀、关系运算符和表达式
关系运算符:在程序中经常要⽐较两个量的⼤⼩关系,以决定程序下⼀步的⼯作。⽐较两个量的运算符称为关系运算符。
1.C语⾔中的关系运算符:<,<=,>,>=,==,!=
其中前四个优先级相同,⾼于==和!=,后两个优先级相同
2.关系表达式⼀般形式为
表达式关系运算符表达式
⼆、逻辑运算符和表达式
1. C语⾔提供了三种逻辑运算符
&&与运算:左右两边均为真则返回真
|| 或运算:左右两边两个都为假则返回假
! ⾮运算
与运算符&&运算符||均为双⽬运算符。具有左结合性,⾮运算符!为单⽬运算符,具有右结合性。逻辑运算符和其他优先级关系表⽰如下:
!(⾮)->&&(与)->||(或)
2.逻辑运算符的值⽤“1”和”0”来表⽰。
3.逻辑表达式⼀般形式为:
表达式逻辑运算符表达式
(⾃左向右为左结合性,⾃右向左为右结合性)
三、 if语句
⽤if语句可以构成分⽀语句,它根据给定的条件进⾏判断,以决定执⾏某个分⽀程序段。C语⾔有三种基本形式1. 第⼀种形式:(基本语句)
if(表达式)语句
含义为:如果表达式的值为真,则执⾏其后的语句,否则不执⾏该语句。
2. 第⼆种形式:(if-else)
if(表达式)
语句1;
运算符优先级按从高到低排列
else
语句2;
含义为:如果表达式的值为真,执⾏语句1,否则执⾏语句2
3. 第三种形式:(if-else-if)
if(表达式1)
语句1;
else if(表达式2)
语句2;
else
语句n;
含义为:如果表达式1为真,执⾏语句1 ;如果表达式2为真,执⾏语句2。否则执⾏else种的语句n。
例题
void main(){
char c;
printf("input a character :");
c =getchar();
if(c<32)
{
printf("This is a control character!\n");
}else if(c >='0'&& c<='9')
{
printf("This is a digit\n");
}else if(c>=97&& c<=122)
{
printf("This is a small letter\n");
}else if(c >=65&& c <=90)
{
printf("This is a capital letter\n");
}else
{
printf("This is an other character!");
}
}
4. 使⽤IF的⼀些注意事项
在三种形式的if语句种,在if关键字之后均为表达式。该表达式通常是逻辑表达式或关系表达式,但也可以是其他表达式,如赋值表达式等,甚⾄也可以是⼀个变量
例如:
if(a =5)语句;
if(b)语句;
以上都是允许的。只要表达式的值为⾮0,即为”真”
案例:
void main(){
int a;
a =2;
if(2==a)
{
printf("equals 3");
}
else{
printf("is not equals 3");
}
}
建议:如果不⼩⼼写成2=a,会出现编译错误,因为⼀个常数是不能被赋值
在if语句种,条件判断表达式必须⽤括号括起来,在语句之后必须加分号
在if语句的三种形式种,所有的语句应为单个语句,如果想要在满⾜条件时执⾏⼀组(多个语句),则必须把这⼀组语句⽤花括号{ }括起来组成⼀个符合语句。但要注意在}之后不能加分号。
5. 补充例题:输⼊三个数a,b,c,要求按由⼩到⼤的顺序输出
void main(){
printf("请输⼊三个数");
int a, b, c;
int temp;
scanf("%d %d %d",&a,&b,&c);
if(a > b){
temp = b;
b = a;
a = temp;
}
if(a > c)
{
temp = c;
c = a;
a = temp;
}
if(b > c)
{
temp = c;
c = b;
b = temp;
}
printf("%d%d%d", a, b,c);
}
6. if语句的嵌套
当if语句种的执⾏语句⼜是if语句时,则构成了if语句嵌套的情形
⼀般形式为
if语句:
if()
{
if()
……;
}
或者为
if(表达式)
if语句;
else
if语句;
if()
if()
语句1;
else
语句2;
else
if()
语句3;
else
语句4;
当在嵌套内的if语句可能有时if-else型的,这将会出现多个if和多个else重叠情况,这时要特别注意if和else的配对问题例如
if(表达式1)
if(表达式2)
语句1;
else
语句2;
此时我们应当遵循else原则,else与哪个if相近就与哪个构成配合,所以应当理解为
if(表达式1)
if(表达式2)
语句1;
else
语句2
四、条件运算符和条件表达式
4.1概述
条件运算符为”?”和“:”,它是⼀个三⽬运算符,即三个参与运算的量
4.2由条件运算符组成条件表达式的⼀般形式为:
表达式1?表达式2:表达式3
4.3其求值规则为
如果表达式1的值为真。则以表达式2的值作为条件表达式的值,否则以表达式3的值作为整个条件表达式的值
4.4条件表达式通常⽤于赋值语句之中
if(a>b) max =a;
else max=b;
max =(a>b)?a:b;
如a>b为真,则把a赋予max,否则b赋予max
4.5注意事项
1.条件运算符的运算优先级低于关系运算符和算数运算符,但⾼于赋值符。
max(a>b)?a:b
可以更改为
max=a>b?a: b;
2.条件运算符?和:是⼀对运算符,不能分开
3.条件运算符的结合⽅法是左结合性(从右到左)
a>b?a:c>d?c:d
理解为
a>b?a:(c>d?c:d)
五、 Switch语句
1. 多分⽀语句,其⼀般形式为
switch(表达式)
{
case常量表达式1:语句1;
...
case常量表达式n:语句n;
default:语句n +1;
break;
}
其语句是:计算表达式的值。并逐个与其后的常量表达式值相⽐较,当表达式的值与某个常量表达式的值相等时,即执⾏其后的语句,然后不再进⾏判断,继续执⾏后⾯所有case后的语句。如表达式的值与所有case后的常量表达式均不相同,则执⾏default后的语句。
为了避免出现⼀个case情况符合,导致后⾯所有结果输出,提供break语句。⽤来进⾏跳出操作。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。