欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C语言流程控制之for while do..while

程序员文章站 2024-03-23 20:32:16
...

流程控制:【C语言中的重点】
1.什么是流程控制:
程序代码执行的顺序
2.流程控制的分类:
顺序执行
选择执行
定义:某些代码可能执行,也可能不执行,有选择的执行某些代码
if
1.if的范围问题:
if(表达式)
语句A;
语句B;
解释:此时if只能控制语句A的执行与否,而不能控制语句B的执行与否
2.if(表达式)

语句A;
语句B;

解释:此时if控制既语句A也控制语句B。
3.一个封号; 一个空语句
4. if()
{
}
else
{
}
5. if (表达式1)
A;
else if (表达式2)
B;
else if (表达式3)
C;
else
D; //如果表达式1与表达式2都成立,其实只执行A,不会进入B去执行的。

				6. if (表达式1)
						A;
					else if (表达式2)
						B;
					else if (表达式3)
						C;	//不会出错,但是语法上有漏洞
				
				7. if (表达式1)
						A;
					else if (表达式2)
						B;
					else (表达式3)
						C;	//错误的,正确的写法是:要么else 后边加if 要么去掉(表达式3)
				8.	if (表达式1)
						A;
					else if (表达式2)
						B;
					else (表达式3);
						C;	//语法上没错,但是逻辑上是错的。
							//else (表达式3);
									C;	相当于 else 
												(表达式3);		//无效的,无含义的
												C;
			
		switch:
			
	循环:
		定义:某些代码会被重复执行
		分类:
			for
				int i, sum = 0 ;
				for(i=1; i<=100; ++i)
				{
					sum += i;
				}
				printf("sum = %d\n", sum);
				//先执行i=1,然后执行i<=100,如果成立那么执行sum += i ,
				//再执行i++,i++执行完标志着一次循环结束.  i=1只执行一次
				
				强制类型转换:
					格式:(数据类型)(表达式)
					eg:(int)(4.5+2.3)  最终值:6
					   (float)(5)		最终值:5.000000
					   
			多个for循环嵌套使用:
				for(1; 2; 3)		//1
					for(4; 5; 6)	//2
						A;			//3
						B;			//4
						整体是2个语句。1	2	3 是一个语句,4是一个语句
						先执行1,再执行2,如果成立执行4,再执行5,如果成立,执行A,再执行6,
						再执行5,如果5成立,再执行A;再执行6,再执行5,如果5不成立,就执行3,再执行2
						如果成立,就执行4,后边依次,如果2不成立就执行B。
				for(7; 8; 9)
				{					
					for(1; 2; 3)		//1
					for(4; 5; 6)	//2
						A;			//3
						B;			//4	
				}			
							//整体是一个语句
		
			while
			
				while(表达式)
					语句;
				什么时候用while 什么时候用for
				for 和while 在逻辑上完全相同,是可以相互转化。但for的逻辑性更强,更不容易出错。
				
				while for 那个时候用哪个,用多了自然就知道了
		
			do ...while 

while(表达式)
do


}while(表达式) //最少执行一次。主要用于人机交互

scanf(" %c",&ch);		//如果要输入一个字符,%c前边必须加一个空格(空白符问题)

switch (表达式)
{
case 常量表达式1:

break;
case 常量表达式2:

break;
case 常量表达式3:

break;
default:
//case 1 ,case 2 ,case 3, default是程序的入口,一旦找到程序的入口,
//就开始从上往下依次执行了。break是用来终止switch的。
}

break 如果用于循环是用来终止循环
break 如果用于switch那么是用来终止switch,在多层switch嵌套中,break只能终止距离他最近的switch
break 不能直接用于if,除非if是属于循环内部的一个字句。
在多层循环中(嵌套循环中)break只能终止距离他最近的循环。