[C语言]分支与循环
导言:
在人生中我们总会有选择,**如下一顿吃啥?**又或者每天都是在重复,吃饭!!!!,当然在C语言中也有选择和重复那就是分支语句与循环语句

文章目录
- 分支
- 循环
- 循环中的关键字
分支
在C语言中可以实现分支的有俩种语法
- if ,else if ,else
//他可以实现单分支也可以实现多分支//简单的单分支的情况
int decide;
scanf("%d",&decide);
printf("是否要好好学习C语言(Y/N):")
if(decide == "Y")printf("你在不懈努力下学会C语言")
elseprintf("你没有学会C语言");//多分支,最近学习考试给分不是已经按照不及格,及格,良,优秀,而不是分数,那按照上面的当分支的情况显然无法满足
int mark;
if(mark<60)printf("不及格");
else if(mark<80)printf("及格");
else if(mark <90)pritf("优秀");
elseprintf("优秀");
tips:
//当你只有1条语句的时候 `{}`是可以省去的,但是他会引发一个问题
int a =20;
if(a >10)if(a == 20)printf("haha");
elseprintf("hehe");//你会不会立说结果是 hehe呢,其实是haha,因为else会与最近的if匹配,那么上述的代码调整一下就是如下所示:
int a =20;
if(a >10)if(a == 20)printf("haha");elseprintf("hehe");//那么你在这里其实也可以看出一个现象,那就是if+else+无落多少个else if 都只算一条语句
- switch
//多用于不同数据同一结果,多分支来简化,主要语法如下
switch(值)
{case 值1:break;case 值2:break;case 值3:breakcase 值4:breakcase 值5:breakdefault:break;
}//1. case就等同与if但是他的值只有和switch的值一样才可以进入
//2. 如果case 后没有break就会一直执行下面case
//3. default可放在任何位置int i =0;
switch(1)
{case 1:case=2:case 3:case 4:case 5:default:i++;
}
//结果是1 当进入case 1 没有brea解说判断则会一直往下知道找到break,或者判断结束
循环
- while(条件) { 语句 }
//一般用于不知道需要循环次数的情况
//这个其实就是if的进化版,if只执行一次,而while可执行多次//不知道你是否听过1万小时定律,就是某件事知道学习进行1w小时那么你就算是在这件事上有话语权
int hour = 0; //与条件相关的变量
while(hour <10000) //条件
{hour++;//调整部分/执行的语句
}
printf("在你不懈的努力下,你终于在这件事有了一定的话语权")
- for( ; ; ) {}
//用于知道循环次数的情况
int hour;
for(hour = 0/*初始化*/;hour<10000/*条件*/;hour++/*调整部分*/)
{//循环体
}
printf("在你不懈的努力下,你终于在这件事有了一定的话语权")//1. for循环初始化可以定义变量但是事在C99版本出的之前版本不匹配,那么跨平台性就不好所以建议分离出来,且分离出来那个变量还可以再次使用
// 2. 且初始化部分和调整部分可以省但是建议写上,方便自己观看,也可以减少出现bug的次数
int i,j,number=0;
for(i = 0;i<10;i++)
{for(;j<3;j++){number++;}
}
//你觉得number是多少,如果你说30那么你就进坑了,因为j没初始化j在第一次循环就是3那么就不会进入循环了
- do {}while();
//一般用于循环体的内容需要一定一次的情况下,如开机启动
//实现1万小时的代码
int hour =0;
do
{hour++;
}while(hour==10000);
printf("在你不懈的努力下,你终于在这件事有了一定的话语权")//如启动10次程序
int number =0 ;
do {//循环体//启动程序number ++;
}while(number <10/*判断*/);
循环中的关键字
- continue
//用于跳过本次循环,也就是执行到这句代码后面的代码都不执行了
int arr[]={1,2,3,4,5,6,7,8,9}
int index= 0;
while(index <=sizeof(arr)/sizeof(arr[0]))
{if(arr[index++] ==5)continue;printf("%d",arr[i]);
}
//结果1,2,3,4,6,7,8,9
- break
//用于终止循环
int arr[]={1,2,3,4,5,6,7,8,9}
int index= 0;
while(index <=sizeof(arr)/sizeof(arr[0]))
{if(arr[index++] ==5)break;printf("%d",arr[i]);
}
//结果1,2,3,4
- goto
//多用于跳出多层嵌套的循环,可以用于服务器出问题进行备份,如下伪代码
copy://备份数据
while(1)
{while(1){while(1){while(1){if(/*出问题/*)goto copy;}}}
}//goto 可以跳转到任何设置过标签的位置,有没有点像哈利波特传送哈哈哈,但是这里会导致代码逻辑混乱,一般不建议使用
相关文章:
[C语言]分支与循环
导言: 在人生中我们总会有选择,**如下一顿吃啥?**又或者每天都是在重复,吃饭!!!!,当然在C语言中也有选择和重复那就是分支语句与循环语句 文章目录 分支循环循环中的关键…...
绘制区块链之链:解码去中心化、安全性和透明性的奇迹
区块链技术以其去中心化、安全性和透明性等特点在全球范围内引起了广泛的关注和兴趣。区块链是一种分布式账本技术,通过将数据以不可篡改的方式链接在一起,创建了一个安全可靠的数据库。这种革命性的技术正在许多领域中发挥作用,包括加密货币…...
4G工业路由器的功能与选型!详解工作原理、关键参数、典型品牌
随着工业互联网的发展,4G工业路由器得到越来越广泛的应用。但是如何根据实际需求选择合适的4G工业路由器,是许多用户关心的问题。为此,本文将深入剖析4G工业路由器的工作原理、重要参数及选型要点,并推荐优质的品牌及产品,以提供选型参考。 一、4G工业路由器的工作原理 4G工业…...
c与c++中struct的主要区别和c++中的struct与class的主要区别
1、c和c中struct的主要区别 c中的struct不可以含有成员函数,而c中的struct可以。 C语言 c中struct 是一种用于组合多个不同数据类型的数据成员的方式。struct 声明中的成员默认是公共的,并且不支持成员函数、访问控制和继承等概念。C中的struct通常被用…...
mysql中char_length()和length()
MySQL中计算字符串长度有两个函数分别为char_length和length。 char_length char_length函数可以计算unicode字符,包括中文等字符集的长度 char_length(‘string’)/char_length(column_name) 1、返回值为字符串string或者对应字段长度,长度的单位为字…...
Numpy学习笔记
科学计算库(Numpy) 通常数据都能转换成矩阵,行就是每一条样本数据,列就是每个字段的特征,Numpy在矩阵运算上非常高效,可以快速处理数据并进行数据计算。 Numpy基本操作 先导入 import numpy as nparray…...
LAMP配置与应用
目录 一、LAMP架构的组成 1、WEB资源类型 2、LAMP架构的组成 二、编译安装LAMP 编译安装apache 1、环境准备 2、导入apache相关压缩安装包,然后安装编译环境 3、解压软件包,并移动apr包与apr-util包到安装目录中,并切换到http解压出…...
Dockerfile搭建LNMP运行Wordpress平台
Dockerfile搭建LNMP运行Wordpress平台 一、项目1.1 项目环境1.2 服务器环境1.3 任务需求 二、Linux 系统基础镜像三、Nginx1、建立工作目录2、编写 Dockerfile 脚本3、准备 nginx.conf 配置文件4、生成镜像5、创建自定义网络6、启动镜像容器7、验证 nginx 四、Mysql1、建立工作…...
数据库第十五课-------------非关系型数据库----------Redis
作者前言 🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂 🎂 作者介绍: 🎂🎂 🎂 🎉🎉🎉…...
BM2 链表内指定区间反转,为什么链表要new一个结点?
链表内指定区间反转_牛客题霸_牛客网 (nowcoder.com) 思路就是,把需要反转的结点放入栈中,然后在弹出来。 /*** struct ListNode {* int val;* struct ListNode *next;* ListNode(int x) : val(x), next(nullptr) {}* };*/#include<stack> class…...
SQL阶段性优化
😜作 者:是江迪呀✒️本文关键词:MySQL、SQL优化、阶段性优化☀️每日 一言:我们要把懦弱扼杀在摇篮中。 一、前言 我们在做系统的过程中,难免会遇到页面查询速度慢,性能差的问题,…...
2023-08-22 Unity Shader 开发入门2 —— Shader 开发介绍
文章目录 一、必备概念1 计算机图形程序接口2 图形接口程序与其他概念的联系 二、Shader 开发1 Shader2 Shader 开发3 需掌握的内容 一、必备概念 1 计算机图形程序接口 计算机图形程序接口(Graphics API)是一套可编程的开放标准,不论 2…...
UE5 运行时捕捉外部窗口并嵌入到主窗口
UE5 运行时捕捉外部窗口并嵌入到主窗口的一种方法 创建一个Slate类用于生成一个窗口 .h// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h" #include "Widgets/SCompoundWidget.h"/*…...
uniapp 使用permission获取录音权限
使用前,需要先配置权限 android.permission.RECORD_AUDIO...
基于paddleocr的文档识别
1、版面分析 使用轻量模型PP-PicoDet检测模型实现版面各种类别的检测。 数据集: 英文:publaynet数据集的训练集合中包含35万张图像,验证集合中包含1.1万张图像。总共包含5个类别。 中文:CDLA据集的训练集合中包含5000张图像&a…...
魏副业而战:闲鱼卖货赚钱策略
我是魏哥,与其躺平,不如魏副业而战! 闲鱼卖货有人赚钱,有人不赚钱。 什么原因呢?闲鱼卖货的策略不对。 这不,社群成员小K找我反馈40单赚了150。 利润太低,不在正常范围之内。 魏哥建议继续…...
语法篇--XML数据传输格式
一、XML概述 1.1简介 XML,全称为Extensible Markup Language,即可扩展标记语言,是一种用于存储和传输数据的文本格式。它是由W3C(万维网联盟)推荐的标准,广泛应用于各种系统中,如Web服务、数据…...
【Redis】缓存雪崩、缓存击穿、缓存穿透
在使用 Redis 缓存时,常常会遇到三个主要的问题,分别是缓存雪崩、缓存击穿和缓存穿透。这些问题都可能导致缓存系统的性能下降或数据不一致性的问题。 一、缓存雪崩(Cache Avalanche) 缓存雪崩是指在某个时间点,缓存…...
通过示例学习 JavaScript 运算符 - 逻辑、比较、三元和更多 JS 运算符
JavaScript 有许多运算符,可用于对值和变量(也称为操作数)执行操作 根据这些 JS 运算符执行的操作类型,我们可以将它们分为七组: 目录 算术运算符赋值运算符比较运算符逻辑运算符三元运算符typeof操作员按位运算符 算术运算符 1. 加法运算符 2.减法运算符 3. 乘法运…...
基于微信小程序+Springboot校园二手商城系统设计和实现
博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、目前专注于大学生项目实战开发,讲解,毕业答疑辅导✌ 🍅文末获取源码联系🍅 👇dz…...
JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
return this;返回的是谁
一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请,不同级别的经理有不同的审批权限: // 抽象处理者:审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...
如何更改默认 Crontab 编辑器 ?
在 Linux 领域中,crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用,用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益,允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...
基于Springboot+Vue的办公管理系统
角色: 管理员、员工 技术: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 该办公管理系统是一个综合性的企业内部管理平台,旨在提升企业运营效率和员工管理水…...
计算机基础知识解析:从应用到架构的全面拆解
目录 前言 1、 计算机的应用领域:无处不在的数字助手 2、 计算机的进化史:从算盘到量子计算 3、计算机的分类:不止 “台式机和笔记本” 4、计算机的组件:硬件与软件的协同 4.1 硬件:五大核心部件 4.2 软件&#…...
关于easyexcel动态下拉选问题处理
前些日子突然碰到一个问题,说是客户的导入文件模版想支持部分导入内容的下拉选,于是我就找了easyexcel官网寻找解决方案,并没有找到合适的方案,没办法只能自己动手并分享出来,针对Java生成Excel下拉菜单时因选项过多导…...
区块链技术概述
区块链技术是一种去中心化、分布式账本技术,通过密码学、共识机制和智能合约等核心组件,实现数据不可篡改、透明可追溯的系统。 一、核心技术 1. 去中心化 特点:数据存储在网络中的多个节点(计算机),而非…...
