分支语句与循环语句(1)

目录

if语句

switch语句

while语句

for语句

do while语句

 if语句

1.if语句:if表示如果条件成立就执行语句

语法结构:if(表达式)

                      语句;

举例:

int main()
{
	int age = 20;
	if (age >= 18)
	{
		printf("成年\n");
	}
	return 0;
}
2.if-else语句:if条件成立执行if下面的语句,反之执行else下面的语句

语法结构:if(表达式)

                      语句1;

                  else
                       语句2;
举例:

int main()
{
	int age = 20;
	if (age >= 18)
	{
		printf("成年\n");
	}
	else
	{
		printf("未成年\n");
	}
	return 0;
}

3.if-else if语句:多条件语句

语法结构:if(表达式1)

                      语句1;

                   else if (表达式2)

                       语句2;

                    else

                        语句3;

举例:

int main()
{
	int age = 25;
	if (age < 18)
	{
		printf("青少年\n");
	}
	else if (age>=18 && age<30)
	{
		printf("青年\n");
	}
	else if (age >= 30 && age<50)
	{
		printf("中年\n");
	}
	else if (age >= 50 && age<80)
	{
		printf("老年\n");
	}
	else
	{
		printf("老寿星\n");
	}
	return 0;
}

悬挂else

在if-else语句中,如果代码书写不规范,可能导致可读性很差。

举个例子:

int main()
{
	int a = 0;
	int b = 2;
	if (a == 1) //什么都没打印,if要与最近的else匹配
		if (b == 2)
			printf("hehe\n");
	else
		printf("haha\n");
	return 0;
}

 上面代码中else到底是更那个if匹配,如果写成这样是不是误以为会跟第一个if匹配呢,这就是书写不规范的问题,实际上else是与最近if进行匹配。

if语句练习

 1.判断一个数字是否为奇数

代码:

int main()
{
	int num = 0;
	scanf("%d", &num);
	if (num % 2 == 1)
	{
		printf("%d是奇数\n", num);
	}
	else
	{
		printf("%d不是奇数\n", num);
	}
	return 0;
}
2.输出1-100之间的奇数

写法1:

int main()
{
    int i = 1;
	while (i <= 100)
	{
		printf("%d ", i);
		i += 2;//每次都产生的是奇数
	}
	return 0;
}

 写法2:

int main()
{
	int i = 1;
	while (i <= 100)
	{
		//判断i是否为奇数
		if (i % 2 == 1)
		{
			printf("%d ", i);
		}
		i++;
	}
	return 0;
}

switch语句

swiich语句通常用于多分支语句。

语法结构:

switch(整型表达式)

{

case1:

case2:

default:

}

上面default是可有可无的,default语句就是当上面所有case情况不成立时就会执行default里面的内容。

 举个例子:

int main()
{
	int day = 0;
	scanf("%d", &day);
	switch (day)//括号里面必须是整型表达式
	{
	case 1: //case后面要放整型常量表达式
		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;
	}
	return 0;
}
上面代码中如果day=1就从case1情况进入,在这里我加了break,意思就是当case1情况执行完成后就跳出switch语句,如果你不加break,它就会按顺序全部执行。
练习

 代码如下

int main()
{
	int n = 1;
	int m = 2;
	switch (n)
	{
	case 1:
		m++;
	case 2:
		n++;
	case 3:
		switch (n)//switch允许嵌套使用
		{
		case 1:
			n++;
		case 2:
			m++;
			n++;
			break;
		}
	case 4:
		m++;
		break;
	default:
		break;
	}
	printf("m = %d, n = %d\n", m, n); // m = 5 n = 3
	return 0;
}

 上面结果为什么m=5,n=3,大家可以好好想以下,其实很简单,开始n=1执行case1,这是m=3了,但是没有break,继续执行case2,n=2,再执行case3,由于n=2执行case2,此时m=4,n=3;遇到break,跳出中间的switch语句,执行case4,此时m=5,所以最后m=5,n=3.

while语句

while语句:可以循环进行。

语句结构:while(表达式)

                        语句;

表达式为真就执行语句。 

举例:打印1-10

int main()
{
	int i = 1;
	while (i <= 10)
	{
		printf("%d ", i);
		i++;
	}
	return 0;
}

下面举两个代码,可以看出break,和continue之间的区别

代码1:

int main()
{
	int i = 1;
	while (i <= 10)
	{
		if (i == 5)
			break; //w永久的终止循环
		printf("%d ", i);//1-4
		i++;
	}
	return 0;
}

 上面代码输出结果是1、2、3、4,因为当i==5的时候就用到break,直接跳出循环结构,结束了循环。

代码2:

int main()
{
	int i = 1;
	while (i <= 10)
	{
		if (i == 5)
			continue; //表示跳出本次循环后面的代码,进入下次循环的入口判断
		printf("%d ", i);
		i++;
	}
	return 0;
}
上面代码输出是1、2、3、4加光标,当i==5时,遇到continue,continue时结束本次循环,进入下次循环的入口判断,所以i始终等于5,一直死循环。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值