c语言更新(八 )

目录

1.switch 语句(分支语句)

2.while 语句(循环语句)

2.1while 循环的实践

练习:在屏幕上打印 1~10 的值

 ​编辑练习 输⼊⼀个正的整数,逆序打印这个整数的每⼀位 例如:

3 for循环

 4.do while 循环

5. break和continue语句

  for 循环中的break 

   for 循环中的continue

 while  循环中的break

while 循环中的continue

1.switch 语句(分支语句)

也可以是字符型  因为字符型也被加入整形组了,他计算的是ASCLL码值

#include <stdio.h>
int main()
{
	char ch = 'c';
	scanf("%c", &ch);
	switch (ch)
	{
	case 'a':
		printf("字符是a\n");
		break;
	case 'b ':

		printf("字符是b\n");
		break;
	}

	return 0;
}

练习: 输⼊⼀个1~7的数字,打印对应的星期⼏ 例如:

输⼊:1 输出:星期⼀ 输⼊:

2 输出:星期⼆ 输⼊:

3 输出:星期三 输⼊:

4 输出:星期四 输⼊:

5 输出:星期五 输⼊:

6 输出:星期六 输⼊:

7 输出:星期天

#include <stdio.h>
int main()
{
	int day = 0;
	scanf("%d", &day);
	switch (day)
	{
	case 1:
		printf("星期一\n");
		break;
	case 2:
		printf("星期二\n");
		break;
	case 3:
		printf("星期三\n");
		break;
	case 4:
		printf("星期四\n");
		break;
	case 5:
		printf("星期五\n");
		break;
	case 6:
		printf("星期六\n");
		break;
	case 7:
		printf("星期天\n");
		break;

	default:
		printf("输入错误,请重新输入\n");
		break;
	}
	return 0;
	
}

如果需求发⽣变化,变为:

1. 输⼊1~5,输出的是“⼯作⽇”;

2. 输⼊6~7,输出“休息⽇”

#include <stdio.h>
int main()
{
	int day = 0;
	scanf("%d", &day);
	switch (day)
	{
	case 1:
		printf("工作日\n");
		break;
	case 2:
		printf("工作日\n");
		break;
	case 3:
		printf("工作日\n");
		break;
	case 4:
		printf("工作日\n");
		break;
	case 5:
		printf("工作日\n");
		break;
	case 6:
		printf("休息日\n");
		break;
	case 7:
		printf("休息日\n");
		break;

	default:
		printf("输入错误,请重新输入\n");
		break;
	}
	return 0;

}

当然我们还可以把这个代码更优化一下

int main()
{
	int day = 0;
	scanf("%d", &day);
	switch (day)
	{
	case 1:	//case也可以不加break ,如果不加break
		//那么语句就会一直向下执行直到找到break或语句结束。
	case 2:	
	case 3:
	case 4:		
	case 5:
		printf("工作日\n");
		break;
	case 6:
	case 7:
		printf("休息日\n");
		break;
	default:
		printf("输入错误,请重新输入\n");
		break;
	}
	return 0;
}

         上⾯的练习中,我们发现应该根据实际的情况,来在代码中觉得是否使⽤ break ,或者在哪⾥使⽤ break ,才能正确完成实际的需求

2.while 语句(循环语句)

2.1while 循环的实践

         ⾸先上来就是执⾏判断表达式,表达式的值为0,循环直接结束;表达式的值不为0,则执⾏循环语 句,语句执⾏完后再继续判断,是否进⾏下⼀次判断

练习:在屏幕上打印 1~10 的值

#include <stdio.h> 
//练习:在屏幕上打印 1~10 的值
int main()
{
	int a = 1;
	while (a<=10)// 条件  如果a大于 10 了,那么条件为假 ,语句就会结束。
	{
		printf("%d ", a);//打印a 1 2  3 ....
		a++;//a打印完每次都加一 就会回到条件
	}
	return 0;
}

 练习 输⼊⼀个正的整数,逆序打印这个整数的每⼀位 例如:

输⼊:1234,输出:4 3 2 1

输⼊:521,输出:1 2 5

#include <stdio.h> 
int main()
{
	int num = 0;
	scanf("%d", &num);
	while (num)
	{
		printf("%d ", num % 10);//先把num % 10 的余数打印出来。
		num = num / 10;在用num /10 消除位数
	}

	return 0;
}

3 for循环

for(表达式1; 表达式2; 表达式3)

表达式1 ⽤于循环变量的初始化

表达式2 ⽤于循环结束条件的判断

表达式3 ⽤于循环变量的调整

#include <stdio.h>

int main()
{
    int i = 0;
    for (i = 0 ; i < 10; i++)//表达式1 初始化 表达式2 条件判断 表达式3 变量调整
    {
        printf("%d ", i);
    }
    return 0;
}

 ⾸先执⾏ 表达式1 初始化循环变量,接下来就是执⾏ 表达式2 的判断部分, 表达式2 的结果如果 ==0,则循环结束; 表达式2 的结果如果!=0则执⾏循环语句,循环语句执⾏完后,再去执⾏表 达式 3 ,调整循环变量,然后再去 表达式2 的地⽅执⾏判断表达式2 的结果是否为0,决定循环是否继 续。 整个循环的过程中,表达式1初始化部分只被执⾏1次,剩下的就是表达式2、循环语句、表达式3在循 环

计算1~100之间3的倍数的数字之和

#include <stdio.h>
int main()
{
	int i = 0;
	int count = 0;
	for (i = 0; i < 100; i++)//打印从1-100数字范围
	{
		if (i % 3 == 0) //如果i % 3==0 那么i就能整除3
		{
			count += i;	//把能整除3的数都加在一起。	
			printf("%d ", i);//可以打印出被3整除的数
		}		
	}
	printf("%d ", count);//打印被3整除的数的和
	return 0;
 

代码优化

#include <stdio.h>
int main()
{
	int i = 0;
	int count = 0;
	for (i = 0; i < 100; i+=3)//这里的i++ 可以简化为i+=3 就是i=i+3。那么if就可省略不写。
	{
		count += i;

	}
	printf("%d ", count);
	return 0;
}

 4.do while 循环

do 语句;

while(表达式);

        while 和 for 这两种循环都是先判断,条件如果满⾜就进⼊循环,执⾏循环语句,如果不满⾜就跳 出循环; ⽽ do while 循环则是先直接进⼊循环体,执⾏循环语句,然后再执⾏ while 后的判断表达式,表 达式为真,就会进⾏下⼀次,表达式为假,则不再继续循环

在屏幕上打印1~10的值

#include <stdio.h>
int main()
{
	int i = 1;//初始化
	do
	{		
		printf("%d ", i);
			i++; //调整
	} while (i <=10);//条件判断

	return 0;
}

输⼊⼀个正整数,计算这个整数是⼏位数?

例如: 输⼊:1234 输出:4

#include <swtdio.h>
int  main()
{
	int  i = 0;
	int count = 0;
	scanf("%d", &i);
	do
	{
		int ret = i % 10;//余数为1位
		i = i / 10;//为的是去掉1位
		count++;//执行了几次就代表有几位数
	} while (i);
	printf("%d ", count);
	return 0;
}

5. break和continue语句

在循环执⾏的过程中,如果某些状况发⽣的时候,需要提前终⽌循环,这是⾮常常⻅的现象。C语⾔中 提供了 break 和 continue 两个关键字,就是应⽤到循环中的。

break 的作⽤是⽤于永久的终⽌循环,只要 break 被执⾏,直接就会跳出循环,继续往后执 ⾏。 • continue 的作⽤是跳过本次循环中 continue 后边的代码,在 for 循环和 while 循环中有 所差异的

  for 循环中的break 

#inmclude <stdio.h>
int main()
{
	int i = 1;	
	for (i = 1; i < 10; i++)
	{
		if (i == 5)//当i等于5时break会跳出循环  结果就是 1 2 3 4 
			break;
		printf("%d ", i);
	}
}

   for 循环中的continue

#include <stdio.h>
int main()
{
	int i = 1;
	for (i = 1; i < 10; i++)
	{
		if (i == 5)
			continue;//这里的continue会跳过后面语句也就是5不会打印出来,
		//回到i++变成6程序继续直到结束。
		printf("%d ", i);
	
	}
}

 while  循环中的break

# include <stdio.h>
int main()
{
	int i = 0;
	while (i < 10)
	{
		if (i == 5)
			break;//当i=5 的时候break执行 循环结束。
		printf("%d ", i);
		i++;
	}
	return 0;
}

while 循环中的continue

#include <stdio.h>
int main()
{
	int i = 0;
	while (i < 10)
	{
		if (i == 5)
			continue;//在这里continue会跳过后面的语句,i++一直无法被执行就无法将5变成6跳出循
		printf("%d ", i);
		i++;
	}
	return 0;
}

好累写了一天 下班

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值