C语言分支循环语句

本文介绍了C语言的三种基本结构:顺序结构、选择结构(包括if和switch语句)和循环结构(包括for、while和do while循环)。详细讲解了各结构的语法形式、执行流程以及相关操作符,如关系、条件和逻辑操作符,并提到了break和continue语句在循环中的作用。
摘要由CSDN通过智能技术生成

C语言是结构化的程序设计语言,这里的结构指的是:顺序结构、选择结构、循环结构

如图:

1.顺序结构

遵循线性顺序,程序自上而下依次执行

int main()
{
	printf("hehe1\n");
	printf("hehe2\n");
	printf("hehe3\n");
	printf("hehe4\n");
	printf("hehe5\n");
	printf("hehe6\n");
	return 0;
}

 以上代码运行结果如图

 

2. 选择结构(分支结构)

2.1 if语句

2.1.1 if

if语句的表达形式如下:

if(表达式)

        语句

在C语言中用数字0表示假,非0表示真

 表达式成立(为真),语句执行; 表达式不成立(为假),语句不执行;

2.1.2 else

如果 if 不成立,那么执行 else 语句

if(表达式)

        语句1

else

        语句2

2.2 switch语句

switch语句是一种特殊形式的 if…else 结构,用于判断条件有多个结果的情况。

2.2.1 switch

switch (expression)                 //表达式值为几,就执行对应的case分支

        case value 1: statement

        case value 2: statement

        default: statement             //表达式的值与case不对应,就执行default分支

 注意:

  • expression必须是整型表达式(int 和 char型 ) ,因为字符是按照ASCII码进行存储的,ASCII码值也是整型;
  • case后的值,必须是整型常量表达式(整型数字 和 表整型达式)
  • case和后面的数字之间必须有空格

2.2.2 break

switch语句有分支效果,只有在switch语句中使用break才能跳出switch语句

eg.随意输入一个整数值,计算除3之后的余数

不加break:

#include<stdio.h>

int main()
{
	int n = 0;
	scanf("%d", &n);
	switch (n % 3)
	{
	case 1:
		printf("余数为1\n");
	case 2:
		printf("余数为2\n");
	case 0:
		printf("整除,余数为0\n");
	}
	return 0;
}

运行结果: 

没有实现分支效果

加上break:

#include<stdio.h>

int main()
{
	int n = 0;
	scanf("%d", &n);
	switch (n % 3)
	{
	case 1:
		printf("余数为1\n"); 
		break;
	case 2:
		printf("余数为2\n"); 
		break;
	case 0:
		printf("整除,余数为0\n"); 
		break;
	}
	return 0;
}

运行结果:

成功实现分支效果。

2.2.3 default

switch表达式中的值无法匹配case值,这个时候要么不处理,要么就是加入default子句;

switch语句中case语句和default语句没有顺序要求,一般是将default语句放在最后处理。

eg.

输入1-5,输出“工作日”;输入6-7,输出“休息日”

不加default 运行结果:

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

 

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

3. 循环结构

循环结构主要是:for循环、while循环、do while循环

3.1 for循环

3.1.1 语法形式

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

        语句;

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

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

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

3.1.2 执行流程

eg.在屏幕上打印1-10

#include<stdio.h>
int main()
{
	int i = 0;
	for (i = 1; i <= 10; i++)
	{
		printf("%d ", i);
	}
	return 0;
}

 

3.2 while循环

3.2.1 语法形式

while(表达式)

        语句

while后面的表达式条件满足,会死循环打印 

3.2.2 执行流程

eg. 在屏幕上打印1-10

#include<stdio.h>
int main()
{
	int i = 1;
	while (i <= 10)
	{
		printf("%d ",i);
		i++;
	}
	return 0;
}

3.3 do while循环

3.3.1 语法形式

do

        语句;

while(表达式);

do while 循环,先直接进入循环体,执行循环语句;然后再执行while后的判断表达式,表达式为真,就会执行下一次,表达式为假,则不再继续循环。 

do while 循环体至少会被执行一次

3.3.2 执行流程

eg, 在屏幕上打印1-10

#include<stdio.h>
int main()
{
	int i = 1;
	do 
	{
		printf("%d ",i);
		i++;
	} while (i <= 10);
	return 0;
}

4.补充

4.1 关系操作符

C语言中用于比较的表达式,称为“关系表达式”(relation expression),里面使用的运算符就被称为“关系运算符”(relation operator),主要有以下6个:

  • >  小于运算符
  • < 大于运算符
  • >= 小于等于运算符
  • <= 大于等于运算符
  • == 等于运算符
  • !=  不相等运算符

注意:

  • 关系表达式通常返回0(假)或1(真)
  • 关系运算符从左到右计算
  • 多个运算符不宜联用

4.2 条件操作符

条件操作符也叫“三目操作符”,需要接收三个操作数,形式如下:

exp1 ? exp2 : exp3

如果,exp1 为真,exp2计算,否则exp3计算

 

#include<stdio.h>
int main()
{
	int a = 0;
	int b = 0;
	scanf("%d",&a);
	b = a > 5 ? 3 : -3;
	//a>5,b=3
	//a!>5,b=-3
	printf("%d\n",b);
	return 0;
}

 

4.3 逻辑操作符

逻辑操作符:与(&&)或(||)非(!)

&&:与运算符,并且的意思,两侧表达式均为真才是真;

||  :或运算符,或者的意思,两侧表达式有一个为真,则为真;

! :逻辑取反运算符,改变单个表达式的真假

4.4 break和continue语句

break:break彻底终止循环。

continue:continue跳过本次循环后边的代码,直接进行下一次循环的判断

以 while循环中的break和continue举例,如下:

#include<stdio.h>
int main()
{
	int i = 0;
	while (i <= 10)
	{
		if (i == 5)
			break;//i等于5后,执行break语句,循环终止
			printf("%d ",i);
			i = i++;
	}
	return 0;
}

 

continue:

#include<stdio.h>
int main()
{
	int i = 1;
	while (i <= 10)
	{
		if (i == 5)
			continue;
		//当i等于5后,就执行continue,直接跳过continue的代码,去循环的地方判断;	
		//因为在这里跳过了i=i+1,所以i一直为5,程序陷入死循环
		printf("%d ", i);
		i = i++;
	}
	return 0;
}

 


以上内容,参考了鹏哥C语言的课件,以及网友分享的知识

还在学习,肯定有描述的不全面、不清楚的地方,欢迎评论区沟通、指正!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值