C语言—选择结构总结

C语言有两种选择语句:

(1)if语句,实现两个分支的选择结构;

(2)switch语句,实现多分支的选择结构;


if语句的一般形式:

(1)

if(表达式)
{
  语句;
}

表达式包括:关系表达式,逻辑表达式,数值表达式等等;

(2)

if(表达式)
{
  语句1;
}
else
{
   语句2;
}

语句可以包括:简单语句,复合语句,以及if语句的嵌套;

(3)if嵌套:

if(表达式)
{
  语句;
}
else if(表达式)
    {
     语句;
    }
    else if()
        {
           语句;
        }
     .     .
     .     .
     .     .
    else 
      {
        语句;
      }

else总是和它上面的最近的未配对的if配对。

 

注意:

       (1)if语句无论写在几行上,都是一个整体,属于同一个语句;(千万不要认为if语句部分是一个语句,else语句是另一个语句);else语句不能作为语句单独使用,必须和if语句同时使用。

       (2)在if语句中要对给定条件进行检查,判断条件是否成立(在计算机语言中用“”和“”表示),若为真则执行。


(2)switch语句的一般结构:

switch(表达式)
{
  case 常量 1:语句1:;break;
  case 常量 2:语句2:;break;
  case 常量 2:语句2:;break;
    .      .     .       .
    .      .     .       .
    .      .     .       .
  default:语句;

}

 

(1)swtich后的“表达式”的值应该是整数类型(字符类型)

(2)当switch语句中case都不满足时执行default语句;

(3)可以没有default :此时没有和swtich相匹配的case常量,流程直接转到swtich语句的下一条语句;

(4)每个case的先后顺序不影响执行的结果;

(5)多个case可以共用一条执行语句;


两者比较:

相同点:都是处理多分支结构。

不同点:if语句是实现两个分支的选择结构,而swtich结构是实现多分支结构;

建议

              swtich在判断固定值的时候使用;

              if在判断区间和范围的时候使用;

用swtich可以做的if多数都可以做;


下面分别用if和swtich来输出学生的成绩‘A’ 90—100     ‘B’ 80—90     ‘C’  70—80    ‘D’ 60—70    ‘E’ 0—60:

if语句:

#include<stdio.h>
#include<windows.h>
int main()
{
	int score;
	printf("请输入成绩");
	scanf_s("%d",&score);
	if (score < 60)
		printf("E");
	else 
		if (score < 70)
		printf("D");
	else
			if (score < 80)
		printf("C");
	else 
				if (score < 90)
		printf("B");
	else
		printf("A");
	system("pause");
	return 0;
}

结果如下:

swtich语句:

#include<stdio.h>
#include<windows.h>
int main()
{
	int score, n;
	printf("请输入成绩");
	scanf_s("%d", &score);
	n = score / 10;
	switch (n)
	{
	case 0:
	case 1:
	case 2:
	case 3:
	case 4:
	case 5: printf("E"); break;
	case 6: printf("D"); break;
	case 7: printf("C"); break;
	case 8: printf("B"); break;
	case 9:
	case 10: printf("A"); break;
	default: printf("\n");
	}
	system("pause");
	return 0;
}

结果如下:

  • 7
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值