首页 > 其他分享 >C语言分支和循环详解

C语言分支和循环详解

时间:2024-04-10 20:29:49浏览次数:22  
标签:语句 case C语言 break while 详解 printf 表达式 分支

在程序中基础的三种结构为顺序结构,选择结构(分支结构),循环结构,几乎所有日常可见的事均可分为这三种结构或者这三种结构的组合.今天,我们就来详细了解一下关于C语言分支和循环语句.

在正式介绍之前呢,先给大家提及一下C语言的控制语句:

C语言共有9种控制语句,可以分为3类:

1. 条件判断语句也叫分⽀语句:if语句、switch语句; 2. 循环执⾏语句:do while语句、while语句、for语句; 3. 转向语句:break语句、goto语句、continue语句、return语句。

1.分支

1.1 if

        if语句的用法:

1.

	if (表达式) {
		语句;
	}

 2.

	if (表达式) {
		语句;
	}
	else {
		语句;
	}

3.

	if (表达式) {
		语句;
	}
	else if (表达式) {
		语句;
	}
	else {
		语句;
	}

        如果表达式为真,则进入分支,执行语句;否则,则执行下一个分支.

1.2 switch

        switch语句的用法:

	switch (表达式) {
	case 常量1: 语句
	case 常量2: 语句
	default: 语句
	}

        需要注意的是 :这里的的表达式必须是常量表达式,case后跟的常量也必须是整形常量

        用星期举例:

#include<stdio.h>
int main() {
	int day;
	scanf("%d", &day);
	switch (day) {
	case 1: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;
	default: printf("无该日期");
	}
	return 0;
}

        我们定义的day是个整形变量,case后跟的1,2..7也是整形.

        或许,有的朋友疑惑,为什么见到有人使用char类型也没有报错, 那是因为char类型转化值ASCII为整形,也可看作整形.

        不知道各位朋友有没有发现代码中有点奇奇怪怪的东西呢,break.还记得之前提到的控制语句么.break的作用便是跳出循环.

        大家可以想一下如果没有break的控制,最后的代码会是怎么样,下面可以给大家试一下.

#include<stdio.h>
int main() {
	int day;
	scanf("%d", &day);
	switch (day) {
	case 1:printf("星期一\n");
	case 2:printf("星期二\n");
	case 3:printf("星期三\n");
	case 4:printf("星期四\n");
	case 5:printf("星期五\n");
	case 6:printf("星期六\n");
	case 7:printf("星期日\n");
	default: printf("无该日期");
	}
	return 0;
}

 

        可以看到当输入1时,switch匹配到case 1,但是代码并没有停下来,反而继续执行之后的代码.由此比较大家是否可以进一步了解break的作用了呢. 

2.循环

2.1 while

        while语句的用法

	while (表达式) {
		语句;
	}

         只要表达式为真,那么while语句将一直执行.

2.2 do..while 

        do...while语句的用法

	do {
		语句;
	} while (表达式);

        与while不同的是,while是先进行表达式的判断在进行语句的执行

                                  do...while则是先进行语句的执行在对表达式进行判断. 

2.2 for

        for语句的用法

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

        其中,表达式1进行的是对循环变量初始化,表达式2是判断,表达式3则是调整循环变量

        在这个过程,首先进行的是表达式1:初始化循环变量,然后对表达式2进行判断,若为真则执行语句,在执行表达式3对循环变量进行调整,继而在对表达式2进行判断,如此循环往复. 

好了,这一段对C语言分支与循环介绍就先告一段落,之后还会进行更为详细的补充.

 

标签:语句,case,C语言,break,while,详解,printf,表达式,分支
From: https://blog.csdn.net/hurui0120/article/details/137602986

相关文章

  • C语言—指针变量作函参改错
    下面程序用于将6个数按输入时顺序的逆序进行排列。找出其中错误,并改正之。#include<stdio.h>voidSwap(int*x,int*y){    int*temp;    temp=x;    x=y;        y=temp;}voidSort(char*p,intm){  inti;  charchange,......
  • C语言的结构体
    结构体就是把一些单一类型组合在一起例如人:姓名+年龄+性别+电话程序如下#include<stdio.h>structstu{   charname[20];   intage;   charsex[10];   chartele[15];};intmain(){   structstus={"zhangsan",25,"nan","1663"}; ......
  • C语言学习笔记day18
    1.指针基本概念    1.地址:用来区分内存中不同字节的编号   2.指针:地址就是指针,指针就是地址   3.指针变量:存储指针的变量,有时去掉变量,称为指针2.指针运算符   1.&:      1.获得一个变量在内存空间中的首地址      2.让表达式类......
  • 关于抽象类和接口(详解)
    关于抽象类和接口一、抽象类1.语法规则2.注意事项3.抽象类的作用二、接口1.语法规则2.实现多个接口一、抽象类有些方法是抽象的,没有实际工作的方法,我们可以把它设计成一个抽象方法,比如draw(画画),不能实例化对象。包含抽象方法的类我们称为抽象类(abstractclass......
  • Vue生命周期详解(八个钩子)
    定义:    一个Vue实例从开始创建一直到销毁的整个过程,称之为生命周期作用:    Vue框架的内置函数,随着组件的生命周期阶段的不同,会自动执行的函数,并且在特定的阶段做某件事,只需要调用相应的钩子函数即可。        我们可以通过使用生命周期(钩子)函......
  • WiFi6详解
    移动互联网时代,“WiFi”和“4G”一直是两个并存的名词——4G网络在室外给我们提供高速流量,WiFi则在室内给我们提供了真正的不用操心的“无限流量”。可以说生活在当下的我们,这两样东西一个不但都离不了且一刻也离不开。想想看如果你的手机断了网,你的焦虑症恐怕就上来了。关于......
  • MQTT协议特点及数据包结构详解(值得珍藏)
    点击下载《MQTT协议特点及数据包结构详解(值得珍藏)》1.前言MQTT(MessageQueuingTelemetryTransport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,用极少的代码和有......
  • Oracle分析函数- count()/sum() over(partition by 分组 order by 排序) 详解
    优点:代码简单明了,并且执行效率高,(不影响总的记录数)如果不用这种函数去写,按照平时我们的思路首先想到的可能是子查询,那么将至少会走4次以上的全表扫描:(1)每个订单中产品数量大于3的产品至少1个(003,004)(2)每个订单中折扣标志为'1'的产品至少有2个(002,004)(3)每个订单......
  • 【猜数字游戏】-C语言循环的应用及扩展函数的使用
    一、扩展函数的应用1.rand()生成随机数rand()函数需要引用一个头文件:#include<stdlib.h>intrand(void)//int代表返回一个整数,void代表无参数rand()无参数,会返回一个伪随机数,范围是0-RAND_MAX,这个RAND_MAX的大小依赖于编译器,大部分编译器上是32767rand()函数用法展......
  • Unity3D代码混淆方案详解
    背景Unity引擎使用Mono运行时,而C#语言易受反编译影响,存在代码泄露风险。本文通过《QQ乐团》项目实践,提出一种适用于Unity引擎的代码混淆方案,以保护代码逻辑。引言在Unity引擎下,为了防止代码被轻易反编译,需要采取相应的保护措施。本文将分享一种基于实践经验的可行方案,希......