2020.9.25 第五课流程控制与选择、循环语句

流程控制

3.1程序的运行流程图

![img](file:///C:\Users\鹤儿\AppData\Local\Temp\ksohtml6940\wps2.png)

![img](file:///C:\Users\鹤儿\AppData\Local\Temp\ksohtml6940\wps3.png)

3.2顺序结构语句

从上到下逐条执行

3.3选择结构语句(if条件语句和switch条件语句)

3.3.1 if条件语句 if... else if...else...

1.if(判断)
{执行}

2.if(判断1)
{执行1}
else
{执行2}

3.if(判断1)
{执行1}
else if(判断2)
{执行2}
..........
 else if(判断n)
 {执行n}
else
{执行n+1}
#include<stdio.h>
int main() {
	int Score;
	printf("输入你的成绩\n");
	scanf_s("%d", &Score);
	if (Score>=85){
		printf("优秀");
	}
	else if (Score>=60) {
		printf("及格");
	}
	else {
		printf("不及格");
	}
	return 0;
}
int data;
scanf("%d",&data);
if(!data%2==0){
    printf("双数\n");
}
else{
    printf("单数\n");
}
/*!data ,输入50 50为真,
  !50为假==0/
      0%2==永远为0
      所以不管输入什么,输出都是双数*/
int data;
scanf("%d",&data);
if(!(data%2==1)){
    printf("双数\n");
}
else{
    printf("单数\n");
}
/*data%2==1 单数
!(data%2==1) 非单数就是双数
*/

3.3.2switch条件语句case break default

switch (表达式)
{
	case 目标值1:
		执行语句1
		break;
	case 目标值2:
		执行语句2
		break;
	……
	case 目标值n:
		执行语句n
		break;
	default:
		执行语句n+1
		break;
}

break打破,跳出

default// 本意是默认的,在代码中表示其他的意思

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
	int week;
	scanf("%d", &week);
	switch (week) {
	case 1:printf("星期一"); break;
	case 2:printf("星期二"); break;
	case 3:printf("星期三"); break;
	case 4 :printf("星期四");break;
	case 5 :printf("星期五");break;
	case 6 :printf("星期六");break;
	case 7 :printf("星期七");break;
	
	default:printf("cuowu"); break;
	}
	getchar();

	return 0;
}

3.4循环结构语句(for、while、do...while)

3.4.1for循环语句

for(初始化表达式; 循环条件; 操作表达式)
{
​		执行语句
​	………
}
int i;
(循环几次)时间=(终点-起点)/速度
     跑步//起点  终点    速度
	for (i = 0; i<10; i=i+1) {
		printf("哈喽我的\n");
	}

(1).起点0 终点9 速度3 循环(时间)了几次?

int i;
for(i=0;i<10;i=i+3){
    printf("哈喽我的\n");
}

时间=10/3=3..1(4次)

(2)从大到小 速度4 循环次数3 ,怎么写?

int i;
for(i=12;i>0;i=i-4){
     printf("哈喽我的\n");
}

计算累加的和
 1#include<stdio.h>
 2int main()
 3{
 4	int sum = 0;                     //定义变量sum,用于记住累加的和
 5	for (int i = 1; i <= 4; i++)  //i的值会在1~4之间变化
 6	{
 7		sum += i;                    //实现sum与i的累加
 8	}
 9	printf("sum = %d \n", sum);   //打印累加的和
 10	return 0;
 11}
/*
i=1 sum=0+1 
i=2  sum=0+1+2  
i=3    sum=0+1+2+3
i=4    sum=0+1+2+3+4=10  结果*/    

3.4.2while循环语句

int x=xxx;
while (循环条件)
{
	执行语句
………
}

int x = 1;//起点
	while (x < 4) {//终点
		printf("halo我的\n");
		printf("%d\n", x);
		x++;//速度
	}

(1)从小到大 速度10 循环次数10 while怎么写?

int i = 0;
	while (i < 100) {
	
		printf("halo我的\n");
		printf("%d\n", i);
		i = i + 10;
	}

3.4.3do...while循环语句

while语句需要先判断循环条件,然后根据判断结果来决定是否执行大括号中的代码,而do…while循环语句先要执行一次大括号内的代码再判断循环条件

do 
{
执行语句
………
} while(循环条件);

int i=5;
do{
    printf("halo我的");
    printf("%d\n",i);
    
(1)}while(i--); (2)}while(--i);

                       --1自减完了
//(1)共循环了6次    (2)共循环了5次  

 int x =1   //起点
 do          
 {
 printf("x = %d\n", x);
     x++;  //速度              
 }
while (x <= 4);  //终点

3.4.4循环嵌套

for(初始化表达式; 循环条件; 操作表达式) 
{
		………
		for(初始化表达式; 循环条件; 操作表达式) 
        {
			执行语句;
			………
		}
		………
}

 1#include<stdio.h>
 2int main()
 3{
 4	int i, j;                        //定义两个循环变量
 5	for (i = 1; i <= 9; i++)      //外层循环
 6	{
 7		for (j = 1; j <= i; j++) //内层循环
 8		{
 9			printf("*");	   	  //打印*
 10		}
 11	  printf("\n");			  //换行
 12	}
 13	return 0;
 14}

结果
    *
    **
    ***
    ****
    *****
    ******
    *******
    ********
    *********


3.4.5死循环

for(;😉{}

while(1){}

do{}while(1);

3.5跳转语句(break、goto、continue)

break跳出当前循环语句

 1#include<stdio.h>
 2int main()
 3{
 4	int x = 1;      //定义变量x,初始值为1
 5	while (x <= 4) //循环条件
 6	{
 7		printf("x = %d\n", x); //条件成立,打印x的值
 8		if (x == 3)
 9		{
 10			break;
 11		}
 12		x++;          //x进行自增
 13	}
 14	return 0;
 15}

x=1

x=2

x=3

goto跳出外部循环
 1#include<stdio.h>
 2int main()
 3{
 4
 5	int i, j;                        //定义两个循环变量
 6	for (i = 1; i <= 9; i++)      //外层循环
 7	{
 8		for (j = 1; j <= i; j++) //内层循环
 9		{
 10			if (i > 4)             //判断i的值是否大于4
 11			{
 12				goto end;         //跳至标识为end的语句
 13			}
 14			printf("*");          //输出*
 15		}
 16		printf("\n");             //换行
 17	}
 18     end:  return 0;
 19}
*
**
***
****

continue终止本次循环,并执行下一次循环

1~100之内的奇数求和

#include<stdio.h>
int main() {

     int sum = 0;
		for (int i = 1; i <= 100; i = i + 1)
		{


			if (i % 2 == 0)
			{
				continue;
			}


		  sum += i;
		}

	printf("sum=%d\n", sum);

	return 0;
}


结果

sum=2500

posted @ 2020-09-26 00:20  鹤儿哈  阅读(102)  评论(0编辑  收藏  举报