首页 > 其他分享 >【C语言基础】分支和循环

【C语言基础】分支和循环

时间:2023-08-02 17:07:51浏览次数:48  
标签:语句 case switch C语言 break while 循环 表达式 分支

目录

一、分支语句

1.1 if语句

1.2 switch语句

二、循环语句

2.1 while语句

2.2 for语句

2.3 do while语句

一、分支语句

1.1 if语句

语法结构

【C语言基础】分支和循环_分支语句

if (表达式1)//如果表达式1为真,执行语句1;如果为假,不执行。
语句1;


if(表达式1)//如果表达式1为真,执行语句1;如果为假,执行语句2。
语句1;
else
语句2;


//多分支

if(表达式1)//如果表达式1为真,执行语句1;如果为假,判断表达式2。
语句1;
else if(表达式2)//如果表达式2为真,执行语句2;如果为假,执行语句3。
语句2;
else
语句3;

*注意:语句n为一条代码;若为多条应使用大括号使多条代码形成代码块。

if 判断的时候,常会搞错 = 与 ==;= 为赋值, == 为判断相等。

else会和最近的if进行匹配不良的代码风格会造成悬空else,使得程序的可读性下降,甚至造成误解。

在编写代码时不能写连续的两个符号,应该改用交并符号连接。

1.2 switch语句

往往用于多个分支语句的情况。

语法结构

switch(整形表达式)
{
   语句项;//是一些case语句
}

示例:

#include<stdio.h>
int main()
{
	int day ;//必须定义为整形或字符型
	scanf_s("%d", &day);
	switch (day)
	{
	case 1://case后必须是整型常量表达式
		printf("星期1\n");
		break;//语句可以不写,继续向下执行
	case 2:
		printf("星期2\n");
		break;
	case 3:
		printf("星期3\n");
		break;
	case 4:
		printf("星期4\n");
		break;
	case 5:
		printf("星期5\n");
		break;
	case 6:
		printf("星期6\n");
		break;
	case 7:
		printf("星期7\n");
		break;
  default://case 列举不完所有的情况,需要加入default,用于其他没有列举到的情况的分支。
    printf("输入错误\n");
    break;
	}
	return 0;
}

switch语句一般需要使用:

1)break:跳出分支语句

case 判断后,如果后面没有break 就会一直往下执行,直到出现或语句结束。

在switch镶嵌语句中,break只会跳出它所在的switch。

2)default:

case 列举不完所有的情况,需要加入default,用于其他没有列举到的情况的分支。

3)case 后面要加整型常量表达式,可以是字符(case语句后放整形结果的常量表达式)

4)case 可以合并。

5)switch 可以嵌套其他语句 ,但是break只会跳出他所在的switch语句。


二、循环语句

2.1 while语句

语法结构

【C语言基础】分支和循环_循环语句_02

while(表达式)
{
  循环语句;
}

while的使用:

1)break:直接跳出循环。

2)continue:后续语句不再执行,跳过本次循环,再从while开始判断,执行。

*注意continue后的语句不再执行,如果只是想跳过,应把表达式变量放在continue前面,防止陷入死循环。

3)while内部有函数,会自动执行函数。

示例:

忽略数字字符,只打印其他字符。


#include<stdio.h>
int main()
{
	char ch = '\0';
	while ((ch = getchar()) != EOF)//EOF,为End Of File的缩写,通常在文本的最后存在此字符表示资料结束。
	{
		if (ch >'0' && ch < '9')  //ch 的ASCII值小于0的值或者大于9的
			continue;
		putchar(ch);
	}
	return 0;
}

输入缓冲区:

有许多输入函数,例如scanf;getchar。它们通过我们使用键盘输入。但其实在我们使用键盘输入的时候,并不是直接操纵这是先输入到输入缓冲区,然后当程序运行到输入函数时,会自动的从输入缓冲区中取数。

清空输入缓冲区的方法:

1)如果输入缓冲区只有一个字符'\n',那么很简单,只需要在后面的getchar()前面加一个getchar()函数读取\n就可以。

2)但是一般情况下 \n前面还有其他字符,我们要清空所有的输入缓冲区,需要写一个循环:

int ch = 0;
while ((ch = getchar() != '\n'))
{
	;           //只有一个分号的意思是 执行while 括号内的程序
}

2.2 for语句

语法结构

for (初始化; 判断; 调整)

{

	语句;  //判断成功需要执行

}

1)break作用:

判断成功时,直接跳出循环。

2)continue作用:

判断成功时,直接跳过下面执行部分,进入下一步。

while循环直接跳过本次循环,可能会跳过i++但是for会主动调整i的值。

3)不要再for内部对循环变量进行调整,否则就可能会出错。

4)for语句的循环控制变量,初始化最好使用闭区间,判断最好使用开区间。

2.3 do while

do
循环语句;
while(表达式);


标签:语句,case,switch,C语言,break,while,循环,表达式,分支
From: https://blog.51cto.com/u_16182859/6940142

相关文章

  • 我的第八次C语言练习
    今天原本还想多学点,结果代码打到一半突然没保存到,导致只能重新打,浪费了很多时间,也就没学什么。//intmain(void)//{// floata;// a=3.1415926;// printf("%fcanbewritten%e\nalsocanbewritten%a",a,a,a);// return0;//}今天学的是浮点数,其中%f,%e,%a分别指的......
  • Git删除本地分支和远程分支
    Git删除本地分支和远程分支#删除本地dev分支gitbranch-Ddev#删除远程dev分支gitpushorigin-ddev......
  • C语言, 字符串
    #include<stdio.h>#include<stdlib.h>#include<string.h>char*tt3="web数学算法";intstr_comparer(){//字符串是个指向字符串开头的指针char*tt1="aac";char*tt2="aa";//字符串可以直接转换成整数,前面加......
  • C语言学习笔记
    C语言程序设计求100-500的质数#include<stdio.h>intmain(){inti,j,n,f=1;for(i=100;i<=500;i++){f=1;for(j=2;j<i/2;j++){if(i%j==0){f=0;}}if(f==1){printf(&......
  • 【C语言】调试的运用,代码出现错误如何自己解决
    1.了解调试。什么是调试?_当我们发现程序中存在的问题的时候,那下⼀步就是找到问题,并修复问题。_这个找问题的过程叫称为调试,英⽂叫debug(消灭bug)的意思。_调试⼀个程序,⾸先是承认出现了问题,然后通过各种⼿段去定位问题的位置,可能是逐过程的调试,也可能是隔离和屏蔽代码的⽅式,找到问......
  • 【C语言】双引号中使用宏定义
     目录快速答案详细讲解举个例子方法及代码参考资料 快速答案使用星号占位符(*)printf("%*d",-4,"12");//或printf("%-*d",4,"12");//得到的输出:"12"(12后面有两个空格) 详细讲解举个例子通常,我们为了保证输出格式美观,会使用下面的方式......
  • C语言 typedef 定义 struct 变量
    typedefstructnode{ datatypedata; structnode*next;}linknode,*linklist;创建单链表linklistL;//等价于structnode*L可以理解为,通过typedef,将structnode*替换为linklist当我们在使用LinkListL定义变量时,实际上就是在使用structnode*L定义变量使得以后......
  • c语言学习10
    结构:结构是由程序员自己设计的一种数据类型,用于描述一种事物的各项数据,由若干个不同的基础类型组成设计:struct结构体类型名{类型名成员名;...};定义:struct结构体类型名结构体变量名;注意:C语言中在定义结构变量时,struct关键字不能省略初始化:......
  • 初学C语言day07--指针与堆内存
    什么是指针:指针是一种特殊的数据类型,使用它可以定义指针变量,指针变量中存储的是整形数据,该整型数据代表了内存的编号(地址),可以通过这个编号访问对应的内存为什么要使用指针:1、函数之间是相互独立的,但是有时候需要共享变量传参是单向值传递全局变量可以共享,但是容易命名冲突......
  • C语言
    程序设计和C语言C语言的特点C语言语句简洁紧凑使用方便灵活运算符丰富表达能力强//c语言只有32个关键字34种运算符C语言程序可移植性好//C语言中没有直接依赖硬件的语句与硬件有关的操作如数据的输入、输出都是都是调用系统提供的库函数//来实现的而这些库函数本身并......