C语言控制流

======================= C语言控制流 =======================================

《一》while do-while for if-else switch-case goto break continue return

 1. while:循环
	while:代码模块

	while(判断表达式)
	{
		....//代码块1
	}
	....//代码块2
	
	判断表达式:其实就是一些值比较的结果 如3>5   a<b ....
	
	判断表达式为真,则执行代码1
	判断表达式为假,则执行代码2
	
	C语言非0即真  1() 2(真) 16546(真) -21(真) 0(假)

在程序当中偶尔会遇到这样写法 true 与false是bool类型的两个值,在stdbool.h中已经定义好
true 值为1  false 值为0 
	while(true) 
	while(false)
	
分析下面写法不同,结果会怎么样
 	while( int_i > int_j )
	{
		printf("小许C语言\n");
		sleep(1);
	} 
	
 	while( int_i > int_j );
	{
		printf("小许C++语言\n");
		sleep(1);
	} 	
答:第一个代码打印小许C语言;第二个进入while循环,不会打印小许C++语言

2. do-while:循环

	do-while:模型
	
	do
	{
		....//代码块1
	}while(判断表达);
	....//代码块2

	判断表达式为真,则执行代码1
	判断表达式为假,则执行代码2
	
	C语言非0即真  1() 2(真) 16546(真) -21(真) 0(假)
	
	whiledo-while循环区别是什么
	do-while循环内代码至少执行一遍
	
	
3. for:循环
	for模型:
	
	for(赋值表达式; 判断表达式;  变量变化表达式)
	{
		...//代码块1
	}
	...//代码块2
	
	三个表达式之间要以;隔开 ,for当中只有三个表达式,即三大块。
	
	for代码先执行顺序
	1、赋值表达式(只执行一次)
	2、判断表达式,若成立(判断结果为真),则执行代码块1 ,否则执行代码块2
	3、判断结果为真,才有第三步:变量变化表达式
	4、判断表达式,若成立(判断结果为真),则执行代码块1 ,否则执行代码块2
	5、判断结果为真,才有第五步:变量变化表达式
	...
	
	
	int i, j, k;
	
		赋值表达式       判断表达式   变量变化表达式
	for(i=4, j=2, k=1;   i > k;      i++, j++)


	for(i=0 ; i < 9; i++)  //i++ ==>i = i+1
	{
		printf("i = %d\n",i);
		sleep(1);
	}
for循环等同while以下代码
	i = 0;
	while(i<9)
	{
		printf("i = %d\n",i);
		sleep(1);		
		
		i++;
	}
for扩展
a.   for(; ; )==>while(1)	
b.   for( ;i<5; i++) 使用,for循环之前的变量赋值

4. if-else:选择控制流
	if-else模型:
	
	if(判断表达式)
	{
		...//代码块1
	}
	else
	{
		...//代码块2
	}
	
	判断表达式为真,则执行代码1
	判断表达式为假,则执行代码2
	
	两个代码块当中只能执行其中一个
	
	C语言非0即真  1() 2(真) 16546(真) -21(真) 0(假)
	
在项目开发当中常用模型

	if(判断表达式)
	{
		代码块1
	}
	if(判断表达式2)
	{
		代码块2
	}
	if(判断表达式3)
	{
		代码块3
	}
	这种模型,只要满足条件都会执行相关语句
	
	if(判断表达式)
	{
		代码块 4
	}
	else if(判断表达式2)
	{
		代码块5
	}
	else if(判断表达式3)
	{
		代码块6
	}
	else
	...
	这种模型,它是从上往下进行判断,当满足其中一个时,后面的则不考虑执行

《二》while do-while for if-else switch-case goto break continue return

switch-case:选择控制流(分支控制流)

	switch-case:模型
	switch(变量)
	{
		case 变量值:
			 代码块1;
			 break;
			 
		case 变量值:
			 代码块2;
			 break;	
		.
		.
		.
		
		default:
			代码块n;
			break;
	
	}
例子:
	while(1)
	{
		printf("请输入字符A~G:");
		scanf("%c",&ch);
		while( getchar() != '\n');
		switch(ch)
		{
			case 'A':
				printf("星期一\n");
				break;
			case 'B':
				printf("星期二\n");
				break;
			case 'C':
				printf("星期三\n");
				break;
			case 'D':
				printf("星期四\n");
				break;
			case 'E':
				printf("星期五\n");
				break;
			case 'F':
				printf("星期六\n");
				break;
			case 'G':
				printf("星期日\n");
				break;
			default :
				printf("无对应的日期\n");
				break;				
				
		}
	
	}
goto:跳转语句
	goto模型
	
	模型1:(少用)
	标签:
	
		。。。。//代码块
	
	goto 标签;
	
	标签定义方法与变量名定义方法一致
	
	
	模型2(可用,处理错误信息后退出程序)
	
	
		。。。。//代码块
	
	goto 标签;
	
		。。。。//代码块
	

	标签:
	

循环体:for while do-while里面的代码	
注意!!!!:
break:一般用于循环体或者switch-case;用于循环体作用:跳出包含自己循环体,用于switch-case,跳出switch-case
	
continue:用于循环体内,作用:跳过continue后面代码块

return:在函数当中用于返回函数值,或者结束该函数。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值