C语言--分支和循环语句

前言

在C语言中,语句分为以下五类:

  1. 空语句
  2. 表达式语句
  3. 函数调用语句
  4. 复合语句
  5. 控制语句:分为 条件判断语句(又叫分支语句)、循环执行语句、转向语句

今天我们就要介绍的是控制语句中的分支语句和循环语句,希望大家看完有所收获。

一.分支语句

1. if语句

1.1 单分支

语法形式:

if (表达式) //表达式成立(为真)则语句执行,反之则不执行
语句;

1.2 二分支

语法形式:

if (表达式)
语句1;
else
语句2;

<注意>:默认情况下,if 和 else 后边只能跟一条语句,如果要跟多条语句,要使用大括号{},否则除第一条以外的语句将不受 if else 条件限制,发生错误。为防止错误,建议不论执行语句有多少都加{},这也是一个好的编程习惯

1.3 多分支

if语句可通过嵌套实现多分支,示例如下:

int main()
{
	int num = 0;
	scanf("%d", &num);
	if (num == 0)
	{
    	printf("输入的值是0\n");
	}
	else if (num > 0)//此处是整个if和else语句嵌入else里了
	                 //为看起来简洁把缩进和大括号删了
	{                //else if数量无限制
    	printf("输入的值是正数\n");
	}
	else
	{
		printf("输入的值是负数\n");
	}
	return 0;
}

1.4 悬空else问题

如果有多个 if 和 else,else总是跟最近的if匹配(不是跟谁对齐就和谁匹配),所以若if中嵌套了if又有else的话,要想else不与其嵌套的匹配,而和外层的匹配,要用{}分隔
错误示例:
什么都不输出
标准写法:
在这里插入图片描述

2. switch语句

2.1 用法

switch是用来进行多分支选择的语句,语法形式如下:

switch(变量表达式)
{
case 常量表达式1:
语句1;
break;//看实际需要加不加,表示中断,用于终止当前代码块的执行并跳出switch语句
case 常量表达式2:
语句2;
···
case 常量表达式n:
语句n;
defaut://可有可无,当所有的case值不匹配时,执行default(表示默认)
//default通常放在最后,但实际上顺序没影响
语句n+1;
}

示例如下:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
	int n = 0;
	scanf("%d", &n);
	switch (n % 3)
	{
	case 0:
		printf("余数是0\n");
		break;
	case 1:
		printf("余数是1\n");
		break;
	case 2:
		printf("余数是2\n");
		break;
	}

	return 0;
}

2.2 注意事项

  1. switch后必须是整型表达式(字符类型属于整型,因为每个字符都有它的ASCII码值,ASCII码值为整数)
  2. case后必须是整型常量表达式
  3. 当case中语句较为复杂时,可以用if进行判断
  4. switch,break,case,default是switch中常用关键字,continue不是switch的关键字,它是用于跳过本次循环后面的代码的

二.循环语句

1.while语句

语法形式:

while (表达式) //表达式成立(为真)则进入循环,语句执行,反之则不执行
语句; //即循环体,若想包含超过一条语句,需加上大括号{}

示例如下:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
	int n = 0;
	scanf("%d", &n);
	//输入一个正整数,逆序打印这个数的每一位
	while (n)
	{
		printf("%d", n % 10);//打印余数即打印最后一位
		n = n / 10;//若输入为4位,此步4位变3位,继续循环直到为0即为假跳出循环
	}
	return 0;
}

2.do while语句

语法形式:

do
语句;//上来不管符不符合下面表达式条件都执行一次
while(表达式);//若表达式为真就会重复do···while这个循环,直至表达式为假(0)

3.for语句

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

<注意>:

  1. 表达式1是初始化,表达式1是判断,表达式3是调整
  2. 表达式间用分号;间隔

示例如下:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

int main()
{    //计算1-100之间3的倍数的数字之和
	int i = 0;
	int count = 0;
	for (i = 3; i <= 100; i+=3)
	{
		count += i;
	}
	printf("%d\n", count);
	return 0;
}

三.区别continue break

continue: 跳出本次循环后面的代码
break: 跳出循环

continue示例如下:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int a = 0, b = 0;
	for (a = 1, b = 1; a <= 100; a++)
	{
		if (b >= 20) 
			break;
		if (b % 3 == 1)
		{
			b = b + 3;
			continue;//continiue跳过本次循环后面的部分,if不是循环 
			         //是跳过本次for循环后面的部分即b = b - 5
		}
		b = b - 5;
	}
	printf("%d\n", a);//打印出来的值为8
	return 0;
}

break示例如下:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

int main()
{
	int i = 0;
	while (i < 10)
	{
		i++;
		if (i == 5)
		{
			break;
		}
		printf("%d ", i);//输出1 2 3 4
	}
	
	return 0;
}
  • 34
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值