C语言基础知识整理(选择结构)

通过学习第三波知识你需要掌握:

  1. 关系运算符与关系表达式
  2. 逻辑运算符与逻辑表达式
  3. if语句
  4. switch语句

难点:

  1. if语句的嵌套
  2. switch语句的使用

关系运算符:

其实关系运算符大家在实际的生活中应该都有接触过,比如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(条件表达式)
	{
		语句
	}
	//双分支
	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语句的基本格式:

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语言干货资料了哦!!

C语言基础知识整理(选择结构)_第1张图片

 

你可能感兴趣的:(C语言,入门小白,编程语言)