通过学习第三波知识你需要掌握:
难点:
其实关系运算符大家在实际的生活中应该都有接触过,比如a>c,如果a为4且b为3则返回真,否则就返回假。
关系运算符及其优先级:
C语言提供的关系运算符主要为6种,分别是:
< (小于) ; <= (小于等于) ; >( 大于) ; >= (大于等于)
以上四个优先级相同(高)
== 等于;!= 不等于
这两个优先级相同(低)
关系表达式:
a>b;
(a+b)>(b+c);
(a=3)>(b=8);
'a'>'b';
在C语言中用整数1表示逻辑值为真,用整数0表示逻辑值为假。比如(a=3)>(b=8);由于逻辑值为假所以返回0。
求值过程:
(1)计算运算符表达式两边的值;
(2)比较这两个值的大小,如果是整形的话就直接比较大小,如果是字符类型的话就比较ASCII值。
3>4!=2 //先判断3>4结果为假(0),然后在判断0!=2结果为真(1)
'a'>'b'//比较ASCII值,97>98所以结果为0
2+5!=3>4-1//等价于(2+5)!=(3>(4-1))结果为1
C语言提供了三种逻辑运算符即:&&(相当于“并且”),||(相当于“或者”),!(相当于否定)
直接用代码来理解这三个表达式吧:
#include
int main()
{
int a,b,c,x;
a=5;
b=7;
c=8;
x=(a>1)&&(b>6);
printf("%d\n",x);//两个条件都为真,返回1
x=(a<1)&&(b>6);
printf("%d\n",x);//有一个条件为假,返回0
x=(a>1)||(b>6);
printf("%d\n",x);//两个条件都为真,返回1
x=(a<1)||(b>6);
printf("%d\n",x);//至少有一个条件为真,返回1
x=(a<1)||(b<6);
printf("%d\n",x);//两个条件都为假,返回0
printf("%d\n",a!=1);//不等于1返回真即1
return 0;
}
运行结果:
1
0
1
1
0
1
三目运算符:
例如:
a>b?c:d //a如果大于b就返回c,否则就返回d
结合方式:自左向右结合
a>b?a:c>d?c:d 等价于:a>b?a:(c>d?c:d )
if语句一般有三种形式:
//单分支
if(条件表达式)
{
语句
}
//双分支
if(条件表达式)
{
语句
}
else
{
语句
}
//多分支
if(条件表达式)
{
语句
}
else if() { 语句 }
else if() { 语句 }
else if() { 语句 }
else if() { 语句 }
else { 语句 }
//嵌套
if(条件表达式)
{
if(条件表达式){}
else
{
}
}
else
{
if(条件表达式){}
else
{
}
}
上面写这么多还是直接上例子让大家了解if和else的运用吧。比如用if嵌套语句求3个数中的最大值。
#include
int main()
{
int num1,num2,num3,max;
printf("请依次输入三个整数:");
scanf("%d%d%d",&num1,&num2,&num3);
if(num1>num2)//先比较num1和num2然后在和num3作比较,将大的那一个值赋值给max
{
if(num1>num3)
{
max=num1;
}
else
{
max=num2;
}
}
else
{
if(num2>num3)
{
max=num2;
}
else
{
max=num3;
}
}
printf("%d\n",num3);
return 0;
}
利用嵌套语句时间简单的比较问题,你也可以用三目运算符解决实际的问题。这里小编就不列出三目运算符的解法了,毕竟编程都是要靠自己去思考才能有所长进。
switch(表达式)
{
case常量表达式:语句1
case常量表达式:语句2
.........
default:语句
}
当表达式的值与某个case后的常量值相等的时候,执行此case分支语句,如果有break则跳出全部循环,如果没有就执行下一条case分支语句。
表达式中的值和常量表达式的值只能是整型或者字符型。并且case分支的常量表达式的值应该不同。
break也称间断语句,作用是跳出整个循环。比如说语句1后加了一个break后,那么就跳出了switch这条语句,而不会去执行语句1后面的语句。
下面小编用一个小例子来教大家理解switch语句的运用吧。
#include
int main()
{
int sorce,grade;
printf("请输入单科成绩(0~100):");
scanf("%d",&sorce);
grade=sorce/10;
switch(grade)
{
case 10:printf("grade=A\n");break;
case 9:printf("grade=A\n");break;
case 8:printf("grade=B\n");break;
case 7:printf("grade=C\n");break;
case 6:printf("grade=C\n");break;
case 5:printf("grade=D\n");break;
case 4:printf("grade=D\n");break;
case 3:printf("grade=D\n");break;
case 2:printf("grade=D\n");break;
case 1:printf("grade=E\n");break;
case 0:printf("grade=E\n");break;
}
return 0;
}
如果没有加break的话,如果输入55,那么他就会显示:D D D D E E但是后面有break后那么它执行完那条语句后就直接跳出,也就是只输出D。
到这里小编这第三波知识也就整理完了,是否对你有一些帮助呢??小编后续还会持续更新更多的知识整理,如果你感兴趣的话,可以关注小编哦!!你还可以进裙873加521还有803连起来就可以进群领取免费C语言干货资料了哦!!