C语言·控制结构——If,switch选择结构一篇文章大详解【适用初学者】含流程图示例

选择结构

If-else:

基本结构如下:

if(<表达式>)
{
<程序模块1>;
}
else
{
<程序模块2>;
}

而其中的程序模块,当只含有一条语句(否则会报错)时,可以省略花括号{}:

if(<表达式>)
<执行语句1>;
else
<执行语句2>;

执行的思路:判别if的表达式是否满足,满足的话(即表达式为真,值为1)便执行语句1,(如果有else if的条件,则判断石是否满足其表达式,否则也归为else)不满足则执行语句2;

应用思路:不同情形下需要做不同的处理,2种或多种情形,不同的情形并列且不相互交叉;

(ps:花括号&分程序:用花括号括起来程序段落的叫做一个分程序,分程序之间可以相互嵌套,但要记得分程序内定义的变量只能用在这个分程序内部!)

流程图如下:

(其中的else if和else都是不必要的,在没有相应处理时不用写该情况。)

原理示例:

学生成绩划分:80分及以上评为优秀;60到80分包含60分在内评为一般;60分以下评为较差;

可见三种条件并列,我们大致的思路是:

if(成绩在80分及以上)

<评价为优秀>;

else if(成绩在60~80含60在内)

<评价为一般>;

else

<评价为较差>;

#include<stdio.h>
int main()
{
int grade;
scanf("%d",&grade);
if(grade>=80)
printf("优秀");
else if(grade<80&&grade>=60)
printf("一般");
else
printf("较差");
return 0;
}

switch

基本结构如下: (注意冒号,分号,括号)

switch(<整型表达式>)
{
case<数值1>:
<程序模块1>;
case<数值2>:
<程序模块2>;
...
default:
<程序模块n>;
}

执行的思路:

先计算整型表达式的值,再与每一种情况(case)的数值作比较,去执行该情形下的程序模块,然后去依次执行其后每一个case模块里的语句,不论整型表达式的值和它是否相等。如果不需要依次往后执行,则使用break语句(下文讲)跳出swich循环结构即可。

应用思路:表达式取不同的值时需要不同处理方式,当然可以只有某些数值时有特定的处理,其余归到default里。它与if语句最大的不同(1)它是根据整型表达式不同的值来划分的情形,而if语句大多是关系表达式的满足与否划分情形;(2)switch在选择了case并执行后,要依次执行它后边的每一个情形下的程序模块,无论整型表达式的值是否与之相等(还可以利用这一特点同时处理多个数值,像下变示例中的10、9)。

流程图如下:

原理示例:

 学生成绩划分:90分及以上评为优秀;80分到90分包含80分评为良好;70分到80分包含70分评为中等;60分到70分包含60分评为及格;60分以下评为较差;

我们大致思路,先判断“分数整除10”也就是十位数的数值,当它是10、9、8、7、6时,我们做相应处理,其余的归为default。

#include<stdio.h>
int main()
{
int grade;
scanf("%d",&grade);//输入成绩值
switch(grade/10)
{
case 10://可以对10情形不处理,但也要写在case 9的前边,否则就执行default了
case 9:
printf("优秀");
break;//不再执行后边的程序模块了!
case 8:
printf("良好");
break;
case 7:
printf("中等");
break;
case 6:
printf("及格");
break;
default:
printf("较差");//后边没情形了,可以不写break;
return 0;
}
}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值