C语言学习(二)

本节大纲

选择结构
循环结构

选择结构

1. if-else型

编程案例1:

#include <stdio.h>
 
int main()
{
	int a,b;
	printf("请输入a的值");
	scanf("%d",&a);
	printf("请输入b的值");
	scanf("%d",&b);
	if(a>b)
		printf("最大值为a,a的值为%d\n",a);
	else
		printf("最大值为b,b的值为%d\n",b);
	return 0;
}

案例分析、案例输出

if…else语句根据

if(此处)

的真假来判断执行哪一条语句
本案例中,先输入a,b的值(不懂请复习C语言学习(一))
程序根据a,b的值做出判断,最终只执行if…else语句中的一句

案例1输出

案例1输出

总结、通用表达式

if(判断式)
	执行语句1;
else
	执行语句2;

如果判断式是真的则执行语句1,若为假,则跳过执行语句1而执行语句2

2. switch型

编程案例2:

#include <stdio.h>
 
int main()
{
	int a,b,c,option;
	printf("请输入a的值");
	scanf("%d",&a);
	printf("请输入b的值");
	scanf("%d",&b);
	printf("请选择执行的操作\n");
	printf("1.加法\n");
	printf("2.乘法\n");
	printf("3.除法\n");
	printf("4.减法\n");
	scanf("%d",&option);
	switch(option)
	{
		case 1:c=a+b;printf("运算结果为%d\n",c);break;
		case 2:c=a*b;printf("运算结果为%d\n",c);break;
		case 3:c=a/b;printf("运算结果为%d\n",c);break;
		case 4:c=a-b;printf("运算结果为%d\n",c);break;
	}
	return 0;
}

案例分析、案例输出

本案例首先从键盘上获取a,b两个数字的值,再创造一个选择功能,选择a,b所进行的运算,变量option存放选择的选项switch(此处为变量),case 此处为变量的值,如果变量值与case中的值相同则从case冒号后的语句开始执行,直到遇到break时则跳出switch选择。

案例2输出

案例2输出

总结、通用表达式

switch(变量)
{
case 变量值1:执行语句1;break;
case 变量值2:执行语句2;break;
}

3. 两种类型对比、分析

if…else为两项选一项
switch为多项选择

两者相比较来说switch更节约系统资源,只做一次判断,可降低时间复杂度(微量)

循环结构:

1. while型

编程案例3:

#include <stdio.h>
 
int main()
{
	int a,b;
	printf("请输入a的值");
	scanf("%d",&a);
	printf("请输入b的值(小于a)");
	scanf("%d",&b);
	while(a>b)//将a的值循坏至与b相等
	{
		a=a-1;
	}
	printf("a的值为%d\n",a);
	printf("b的值为%d\n",b);
	return 0;
}

案例分析、案例输出

首先输入a,b的值

while(此处先判断表达式是否成立)

如表达式成立,则执行while中的语句,若不成立在直接跳过

案例3输出

案例3输出

总结、通用表达式

while(判断式)
{
	执行语句;
}

2. do…while型

编程案例4:

#include <stdio.h>
 
int main()
{
	int a,b;
	printf("请输入a的值");
	scanf("%d",&a);
	printf("请输入b的值(小于a)");
	scanf("%d",&b);
	//将a的值循坏至与b相等
	do{
		a=a-1;
	}
	while(a>b);
	printf("a的值为%d\n",a);
	printf("b的值为%d\n",b);

	return 0;
}

案例分析、案例输出

与案例3相似,不同的是do…while先执行循环体内的语句,再进行判断,如成立则再循环一遍,若不成立则直接退出循环

案例4输出

案例4输出

总结、通用表达式

do{
	执行语句
}while(判断式)

3. for型

编程案例5:

#include <stdio.h>
 
int main()
{
	int a,b;
	printf("请输入a的值");
	scanf("%d",&a);
	printf("请输入b的值(小于a)");
	scanf("%d",&b);
	//将a的值循坏至与b相等
	for(int i=0;i<=a-b;i=i+1)
	{
	a=a-1;
}
	printf("a的值为%d\n",a);
	printf("b的值为%d\n",b);

	return 0;
}

案例分析、案例输出

功能与案例3.4相同,本案例中为for循环的执行结果
注意与while和do…while循环比较

案例5输出

案例5输出

总结、通用表达式

for(定义变量;判断是否满足表达式;变量做的运算)

注意分号位置

4.三种类型对比、分析

for循环为最常用的循环语句
For(此处必须要有两个分号) 中间的可不写
如:

for(;i<3;i=i+1)
for(;;i=i+1)
for(;;)

都是正确写法

编程练习:

根据本次5个案例 统计

absadwadnasdwiasdhwansabashhad

长度为30的字符串中a出现了几次?

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值