C2 分支和循环语句

文章目录

C语言是结构化的程序设计语言
1.顺序结构
2.选择结构
3.循环结构

什么是语句

 C语言的语句分为以下5类:
 表达式语句
 函数调用语句
 控制语句
 复合语句
 空语句
 
 之后介绍控制语句:用于控制函数的执行流程,以实现程序的各种结构方式,由特定的语句定义符组成,C有9种
 可分为以下三类
 1. 条件判断语句,即分支语句:if 、while
 2. 循环执行语句     do while、while、for
 3. 转向语句: break、goto、continue、return

分支语句

if

1. 0表示假,非0表示真(-1也是真)

if(18<age<30)                  //age =10;
 {                             //18<10-->0,0<30-->1,  if(1) 
    printf("%d ",age);
 	语句1;
 }
if(表达式)
 {
 	语句1;                        //不加大括号,只能跟一个语句
 }
 else(表达式)                      // 这里 if else 合成一条语句
 {
 	语句2;
 }

2. 语法结构(可以单分支也可以多分支):

if(表达式)        //多分支
 {
 	语句1;
 }
 else if(表达式)
 {
 	语句2;
 }
 else (表达式)
 {
  	语句3;  
 }

3. 悬空else 语句

    else总是与离他最近的if 匹配;利用大括号分隔
    做好代码分隔,int a = 10;(大概是便于修改)   //《高质量c/c++编程》

C2 分支和循环语句
C2 分支和循环语句

4. if书写形式的对比

// 代码1  
if(condition)           //1,2的效果是一致的   函数执行到return 0 ,就结束;
	return x;            // 但这种写法不好,代码2是规范写法
return y;
//代码2
if(condition)
	return x;
else
	return y;
  1. debug
    所以比较时, 把常量放在左边,更好
int main()
{
		int num = 1;
		if (m=5)                            //误写(m==5) 这时不会报错,会错误地执行下去
		       printf("A");    
		if ( 5=m)                            //误写(5==m) error:左操作目不等于左值
		       printf("A");                         
}

switch

常常应用于多分支

int main()
{
	int day = 0;
	scanf("%d", &day);
	switch(day)                            //day 的值只决定了入口,没给出口
	{
		case 1:
			printf(“星期1\n”);
		case 2:
			printf(“星期2\n”);
       case 3:
			printf(“星期3\n”);
			break;                        // 适当加break,可以跳出;
		case 4:                           // 没有break 一直执行,直到遇到break;
			printf(“星期4\n”);
		case 5:
			printf(“星期5\n”);		
	}
return 0;
}

整型是必要的

switch(整型表达式)
{
	case 整型常量表达式:
		语句;
}

不加break也可能是需求;

int main()
{
	int day = 0;
	scanf("%d", &day);
	switch(day)                            // day 的值只决定了入口,没给出口
	{
		case 1:
		case 2:                          
        case 3:
		case 4:
		case 5:                          // 保留入口标签
			printf(“工作日\n”);	
			break;
		case 6:
		case 7:
			printf(“休息日\n”);	
			break;			             // 最后一个break 可加可不加,但考虑到后续可能增加case 
		// case 8:
	}                                                          
return 0;
}

default 语句

int main()
{
	int day = 0;
	scanf("%d", &day);
	switch(day)                        
	{
		case 1:
		case 2:                          
        case 3:
		case 4:
		case 5:                       
			printf(“工作日\n”);	
			break;		           
		default :                        // 处理额外情况
			printf("输入错误");    // 没有顺序要求
			break;                      // 其他位置的话,不要漏掉break;
	}                                                          
return 0;
}

可以嵌套

C2 分支和循环语句
// 5 3

循环语句

while

C2 分支和循环语句

break 跳出while 循环

int main()
{
	int i =  1;
	while(i<=10)
	{
		if(5==i)
			break;                                  // 1 2 3 4
		printf("%d", i);
		i++;	 
	}
	return0 ;
}

continue 终止本次循环

直接跳到while ,重新判断条件

int main()
{
	int i =  1;
	while(i<=10)
	{
		if(5==i)
			continue;               // 1 2 3 4 _ 开始前三句的死循环
		printf("%d", i);
		i++;	                    // 遇到continue,之后的代码不再执行
	}
	return0 ;
}

for

do while

goto 语句

上一篇:由用户输入A+B形式的四则运算,让电脑输出答案;


下一篇:追GIRLFRIEND(不认识的查字典),让我学会了分支,循环语句。