初级C语言:1 分支、循环与转向语句

本文详细介绍了C语言中的各种控制语句,包括分支语句(if,switch)、循环语句(while,for,dowhile)以及转向语句(break,continue,return,goto),展示了如何通过这些语句实现程序的结构化控制。
摘要由CSDN通过智能技术生成

1. 语句

  C语句可分为以下五类:1. 表达式语句;2. 函数调用语句;3. 控制语句;4. 复合语句;5. 空语句。

  C语言是“结构化”的程序设计语言,通过控制语句来解决由“顺序”、“选择”、“循环”构成的单一/多样的结构。

  主要为控制语句,控制语句用于控制程序的执行流程,以实现程序的各种结构方式,它们由特定的语句定义符组成。其主要分为三类:分支语句、循环语句、转向语句。

1.1 分支(选择)语句:

分支语句可分为: if, switch

If:

语法结构:

//1单分支:

if(表达式)                    //表达式为真(非0),执行下面语句

    语句;

//2双分支:

if(表达式)                     //表达式为真,执行下面语句1

    语句1;

else                              //表达式为假,执行下面语句2

    语句2; 

//3多分支 :  

if(表达式1)                       //表达式1为真,执行下面语句1

    语句1;

else if(表达式2)               //表达式2为真,执行下面语句2

    语句2;

else                               //表达式1&2为假,执行下面语句3

    语句3;

注意:

        if只会执行一个语句,if、else执行多个语句时需使用{};else是与离它最近的if相匹配。

//if:
//单分支
#include <stdio.h>
int main()
{
	int a = 10;
	if (a < 20) //表达式为真(非0),执行下面语句
	{
		printf("good!");
	}
	return 0;
}

//双分支
#include <stdio.h>
int main()
{
	int age = 0;
	printf("请输入你的年龄:\n");
	scanf("%d", &age);
	if (age < 18) //表达式为真(非0),执行下面语句
	{
		printf("未成年!");
	}
	else          //表达式为假,执行下面语句
	{
		printf("成年!");
	}
	return 0;
}

//多分支
#include <stdio.h>
int main()
{
	int age = 0;
	printf("请输入你的年龄:\n");
	scanf("%d", &age);
	if (age < 15)
		printf("儿童!");
	else if(age >=15 && age<18)
		printf("少年!");
	else if (age >= 18 && age < 26)
		printf("青年!");
	else if (age >= 26 && age < 36)
		printf("壮年!");
	else if (age >= 36 && age < 56)
		printf("中年!");
	else if (age >= 56 && age < 81)
		printf("老年!");
	else
		printf("长寿!");
	return 0;
}

switch:

switch常用于多分支语句

语法结构:

switch(整型表达式)                          //决定switch的入口,即:从case几开始执行

{

case 整形常量表达式1:

    语句1;

    break;                                         //结束执行

case 整形常量表达式2:

    语句2;

    break;

    default:                                      //所有case都不满足时执行

    语句3;

    break;

}

注意:

         switch从起始case从上至下执行,遇见case才结束;switch为整型表达,式,case为整形常量表达式;switch允许嵌套使用。

//switch:
#include <stdio.h>
int main()
{
	int n = 0;
	scanf("%d", &n);
	switch (n)      //n必须为整型表达式,决定switch的入口,即:从case几开始执行
	{
	case 1:         //caseh后面必须为整形常量表达式
	case 2:
	case 3:
	case 4:
	case 5:
		printf("工作日\n");
		break;      //结束switch
	case 6:
	case 7:
		printf("休息日\n");
			break;
	default:       //case都不满足时,执行default
		printf("输入错误\n");
	}
  return 0;
}

1.2 循环语句:

循环语句分为:while, for, do while

while

语法结构:     //表达式为真,执行循环;每次循环都要进行表达式判断,表达式为假,跳出循环。

while(表达式)

循环语句;

注意:

        while中的break是用于永久终止循环的。continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,而是直接跳转到while语句的判断部分,进行下一次循环的入口判断。

//while:
#include <stdio.h>
int main()
{
	int i = 0;
	while (i <= 20)     //表达式为真,执行循环;每次循环都要进行表达式判断,表达式为假,跳出循环。
	{
		i++;
		if (11 == i)   
			break;      //break:终止语句循环
		if (5 == i)
			continue;   //continue:终止本次循环(本次循环中continue后边的代码不会再执行),
		               //直接跳转到while语句的判断部分,进行下一次循环的入口判断.
		printf("%d ", i);
	}
	return 0;
}

getchar:

//清理缓冲区:
#include <stdio.h>
int main()
{
	int ch = 0;
	while ((ch = getchar()) != EOF)  //获取一个字符,利用getchar可以清除缓存区,特别是'\0'
		putchar(ch);                 //打印字符
	return 0;
}

for:

语法结构:                             

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

   循环语句;

             表达式1:为初始化部分,用于初始化循环变量的。

            表达式2:为条件判断部分,用于判断循环时候终止。(判断部分如果省略,则意味这判断会恒成立)

             表达式3:为调整部分,用于循环条件的调整。

//for:
#include <stdio.h>
int main()
{
	int i = 0;
	for (i = 1; i <= 10; i++) //for(i=1/*初始化*/; i<=10/*判断部分*/; i++/*调整部分*/)
	{
		printf("%d ", i);
	}
	return 0;
}

注意:

       1. 初始化部分只执行一次。

       2. 跟while中一样,for的break是用于永久终止循环的;continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,而是直接跳转到for语句的调整部分。

       3. 不可在for 循环体内修改循环变量,防止 for 循环失去控制,应在调整部分修改。

       4. 建议for语句的循环控制变量的取值采用“前闭后开区间”写法。

do while

do while: 先循环,后判断(至少循环一次)

语法结构:

do

    循环语句;

while(表达式);

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

注意:

        do while的break是用于永久终止循环的;continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,而是直接跳转到while语句的判断部分。

1.3 转向语句:

转向语句: break, goto, continue, return

goto:

语法结构:

表达式:

goto 表达式;

       可以随意滥用的 goto语句和标记跳转的标号。其最常见的用法就是终止程序在某些深度嵌套的结构的处理过程。

//goto:
#include <stdio.h>
int main()
{
	int a=0;
	int i = 0;

		for (i = 0; i < 10; i++)
		{
			printf("%d ", i);
			if (i==10)
			goto again;
		}
	again:
		printf("");
		return 0;
}

注意:goto不能跨函数跳转。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值