c语言分支程序讲解,C语言基础知识之(二):分支

程序的三种结构:顺序、分支、循环

1、顺序 按照先后顺序执行

int a = 5;

int b =7;

先执行a= 5,在执行b=7.

2、分支:if分支有三种形式

形式1:

if(条件表达式){

语句

}

先执行()内的条件表达式,如果条件表达式结果为真,则执行if后面{}内的代码;如果条件表达式结果为假,则跳过{ }内的代码,执行if语句后面的代码。

注意:

上述代码表达式括号()后面跟了’;',导致if语句为空语句,大括号内的语句跟if语句没有关系,无论条件真假都会执行语句。

在if条件表达中,等号== 常量写于变量前面,为了防止等号 == 写不全。

一般的声明的变量只能写在 = 前面。

形式2:

if(条件表达式){

语句1;

}else{

语句2;

}

当条件表达式为真时,执行语句1,否则执行语句2.

例题:

输入一个年份,判断该年份是否是闰年?如果是闰年,则输出该年是闰年,否则输出该年不是闰年

提示:闰年:能被400整除或者能被4整除但是不能被100整除

int year = 0;

printf("Pleaseenter a year: \n");

scanf("%d",&year);

if((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)) {

printf("The year is a leap year. \n");

}

else{

printf("The year ia a non-leapyear. \n");

}

注意:

if中的条件表达式比较复杂,可读性差。最好的在括号外面定义,增强可读性。如下:

BOOL r1 = (year % 400 == 0);

BOOL r2 = (year % 4 == 0) && (year % 100 != 0);

if (r1 || r2) {

printf("该年是闰年. \n");

}else {

printf("该年不是闰年. \n");

}

形式3、

if(条件表达式1){

语句1;

}else if(条件表达式2){

语句2;

}else{

语句3

}

如果条件表达式1为真,执行语句1。如果条件表达式1为假,条件表达式2为真,执行语句2。如果条件表达式1与条件表达式2都为假,执行语句3。

注意:if-else 最多使用2组。多于2组的使用switch –case函数。

例题:

从键盘输入一个字符,如果是数字打印this is digital。如果是大写字母,打印this is capital letter。如果是小写字母,打印this is letter。如果是其他字符,打印 other。

char m = 0;

printf("please enter a character; \n");

scanf("%c", &m);

if (m >= '0' && m <= '9') {

printf("this is digital. \n");

}else if (m >= 'A' && m <= 'Z'){

printf("this is capital letter. \n");

}else if (m >= 'a' && m <= 'z'){

printf("this is letter. \n");

}else{

printf("other \n");

}

3、条件运算符  ?

公式:条件表达式 ? 表达式1 :表达式2

条件表达式结果是:真或假

如果条件表达式结果为真,则运算结果为表达式1的结果;

如果条件表达式结果为假,则运算结果为表达式2的结果;

例题:

比较两个数,定义变量接受两个数中的最小值

if/else 实现

int num1 = 2;

int num2 = 4;

int minValue = 0; //存放最小值

if (num1 > num2) {

minValue = num2; //num1的值大于num2

}else {

minValue = num1; //num1的值小于num2

}

printf("minValue = %d", minValue);

条件运算符实现:

minValue = num1 > num2 ? num2 : num1;

printf("minValue= %d", minValue);

4、switch语句

格式:

switch(整型/字符型表达式) {

case 值1:{   语句1;break;  }

case 值2:{   语句2;break;  }

…….

case 值n:{   语句n;break;  }

default:{    语句n+1;break;  }

}

1、如果表达式的值没有和任何一个case后面的值匹配成功,程序直接执行default语句。

2、default分支如果没有语句,可以没有{},但是必须要有break。

3、break语句在switch中的作用:结束当前case分支的执行,并且结束switch语句

4、多个case可以运行同一个代码段

5、整个default语句都可以去掉

6、case中定义变量需要加{ }。case后面的值是整型或字符型常量、整型常量表达式。不能使用变量。

例题:

按照考试成绩(A、B、C、D)的等级输出百分制分数段,A、B、C :输出60分以上 D:输出60分以下

char level = 'A';

switch (level) {

case 'A':

case 'B':

case 'C':{

printf("60分以上 \n");

break;

}

case 'D':{

printf("60分以下 \n");

break;

}

default:

break;

}

return 0;

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值