流程控制总结(if, for, while, switch...)

if语句

(1)if的简单用法

  1. if (表达式)
    语句A;
    功能: 如果表达式成立,则执行语句A,反之不执行

  2. if (表达式)
    语句A;
    else
    语句B;
    功能:如果表达式成立,则执行语句A,否则执行语句B。
    注意:语句A和语句B只能执行其中一个

  3. if (表达式1)
    语句A;
    else if(表达式2)
    语句B;
    else
    语句C;

注意:

  • 语句A,语句B和语句C只能执行其中一个
  • 即使表达式1 2 都成立,也只会执行语句A。因为系统识别到表达式1成立,就会执行语句A,然后直接跳到下一步

验证小例子:

#include <stdio.h>
int main (void)
{
	if (5 > 2)
	printf ("哈哈");
	else if (4 > 2)
	printf ("嘻嘻");
	else
	printf ("呵呵");
}
//结果:哈哈

(2)if的范围问题

1.if (表达式)
语句A;
语句B;

if只能控制语句A

2.if (表达式)

语句A;
语句B;

if能控制语句A和语句B

(3)if的常见用法(给数排序)

给数排序(擂台法):

#include <stdio.h>
int main (void)
{
	int a = 1;
	int b = 5;
	int c = 3;
	int t;
	if (a < b)
	{
		t = a;
		a = b;
		b = t;
	}
	//上面的if语句让a,b的值交换,使a>b
	if (a < c)
	{
		t = a;
		a = c;
		c = t;
	}
	//上面的if语句让a,c的值交换,使a>c
	if (b < c)
	{
		t = b;
		b = c;
		c = t;
	}
	//同理,上面的if语句使b>C
	printf ("%d>%d>%d", a,b,c);
 } 
 //结果;5>3>1 

for语句

(1)for循环的简单用法

for (1; 2; 3)
{
	A; 
} 

先执行1,再判断2是否成立,若2不成立则退出循环;若2成立再依次执行语句A和3,然后再判断2是否成立,周而复始。

3执行后,是完成一次循环的标志

(2)for循环的嵌套使用

for (1; 2; 3)
   for (4; 5; 6)
	A;
	B;

先执行1,再判断2是否成立,若2不成立,则退出整个大循环,执行B;若2成立,就执行4,再判断5是否成立,若5成立,则执行小循环。等到5不成立时,退出小循环,再执行3,然后再判断2是否成立,周而复始。

6执行后,是完成一次小循环的标志
3执行后,是完成一次大循环的标志

while语句

(1)while的简单使用

1.while循环
格式:
while()
语句;

2.do…while循环
格式:
do

语句;

while();

(2)for和while的相互转换

for123)
       A;
       
等价于
1while2)
{
    A;
    3;
}

验证小例子:

#include <stdio.h>
int main (void)
{
	int i;
	
	for (i = 0; i < 2; i++)
	{
		printf ("语文");
	}
	//结果:语文语文 
	
	
	i = 0;
	while (i < 2)
	{
		printf ("语文");
		i++; 
	} 
	//结果:语文语文 
}

(3)while与for和do…while的区别

do…while是先执行,后判断,而for和while是先判断,后执行

(4)do…while的主要运用(人机交换)

char ch;
do
{
……
printf ("你要继续吗Y/N:");
scanf (" %c"&ch);
//%c前要加空格while'y' == ch || 'Y' == ch);

break语句

break用于循环时,是用来终止循环
break用于switch时,是用来终止switch

注意:

  1. break不能用于if,除非if作为循环的一部分
  2. break只能终止离它最近的switch或循环

验证小例子:

#include <stdio.h>
int main (void)
{
	int i, j;
	for (i = 1; i < 3; i++)
	{
		for (j = 2; j < 5; j++)
		{
			break;
			printf ("haha");
			
    	}
		printf ("xixi\n"); 
    }
 } 
 /*结果:
 xixi
 xixi
 
 */ 

switch语句

例子:模拟电梯

#include <stdio.h>
int main (void)
{
	int i;
	printf ("请输入你要去的楼数:");
	scanf ("%d", &i);
	switch (i)
	{
		case 1:
			printf ("一楼开\n");
			break;
		case 2:
            printf ("二楼开\n");
            break;
        case 3:
            printf ("三楼开\n");
            break;
        default:
            printf ("这层楼还没盖");
            break;
    }	 
}

switch的后面可以是表达式
但是注意:

  1. switch和case的后面一定是整数,若不是整数,可利用强制类型转换,如:(int(grade/10))
  2. default只有当case匹配失败时才会执行
  3. 如果case的后面不加break的话会一直执行下去,直至遇到break或switch结束为止

continue语句

作用:用来跳过循环剩余的部分,反回去执行for或while里面的语句

for1; 2; 3)
{
A;
B;
continue;(C、D语句都会被跳过,直接执行32)
C;
D;

return语句

作用:终止被调函数,向主调函数返回表达式的值,若表达式为空,则只终止该函数

int f()//int表示只能向主调函数返回整型数值return 10;  //终止该函数,并向主调函数返回10void f()   //void表示无返回值return;  //终止该函数

goto语句

被称为无条件转移语句
作用:能强制中断goto语句后面的一些语句,并直接跳到后面带冒号的标签语句

验证小例子1:

#include <stdio.h>
int main (void)
{
	goto loop;
	printf ("哈哈");
	loop:printf ("嘻嘻"); 
 } 
 //结果:嘻嘻

验证小例子2(从1加到100):

#include <stdio.h>
int main (void)
{
	int i = 0, sum = 0;
	loop:
	if (i < 100)
	{
		i++;
		sum = sum + i; 
		goto loop;
	}
	printf ("%d", sum);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值