C语言之分支

GPS模拟器技术解析:从原理到工程实践 全球导航卫星系统(GNSS)是现代定位技术的核心,其可靠性验证依赖GPS模拟器这一关键技术。通过软件定义无线电(SDR)技术,模拟器能精确复现卫星信号,解决传统测试中环境不可控、场景不可复现等痛点。在工程实现上,涉及载波调制、伪随机码生成、导航电文处理等数字信号处理技术,以及高精度时钟同步、射频信号链设计等硬件挑战。该技术已广泛应用于自动驾驶测试、航空导航设备验证等领域,特别是支持多星座(GPS/北斗/Galileo)信号同步模拟的现代模拟器,为5G+GNSS联合测试等前沿场景提供关键支撑。随着AI场景生成 阅读详情

1.前导程序

复制代码
 1 //统计字符、单词和行
 2 #include<stdio.h>
 3 #include<ctype.h>        //为isspace()提供函数原型
 4 #include<stdbool.h>        //为bool、true和flase提供定义
 5 #define  STOP  '|'
 6 int main(void)
 7 {
 8     char c;                //读入字符
 9     char prev;            //前一个读入字符
10     long n_chars=0L;    //字符数
11     int n_lines=0;        //行数
12     int n_words=0;        //单词数
13     int p_lines=0;        //不完整的行数
14     bool inword=false;    //如果C在一个单词中,则 inword等于true
15 
16     printf("Enter text to be analyzed(| to terminate):\n");
17     prev='\n';            //用于识别完整的行
18     while((c=getchar())!=STOP)
19     {
20         n_chars++;        //统计字符
21         if(c=='\n')
22             n_lines++;    //统计行
23         if(!isspace(c)&&!=inword)
24         {
25             inword=true;    //开始一个新单词
26             n_words++;        //统计单词
27         }
28         if(isspace(c)&&inword)
29             inword=false;    //到达单词的结尾
30         prev=c;                //保存字符值
31     }
32 
33     if(prev!='\n')
34         p_lines=true;
35     printf("characters=%ld,words=%d,lines=%d,",
36             n_chars,n_words,n_lines);
37     printf("partial lines=%d\n",p_lines);
38     return 0;
39 }
复制代码

2.If语句

  • 在If语句中,判断和执行(如果可能的话)仅有一次,而在while循环中,判断和执行可以重复多次。
  • 判断语句通常是一个关系表达式,表达式的值为0就视为假,忽略该语句。
复制代码
 1 //求出温度低于零度的天数的百分比
 2 #include<stdio.h>
 3 int main(void)
 4 {
 5     const int FREEZING=0;
 6     float temperature;
 7     int cold_days=0;
 8     int all_days=0;//初始化天气温度输入总天数
 9 
10     printf("Enter the list of daily low temperatures.\n");
11     printf("Use Celsius,and enter q to quit.\n");
12     while(scanf("%f",&temperature)==1)//有正确输入则进入循环
13     {
14         all_days++;
15         if(temperature<FREEZING)
16             cold_days++;//零度以下温度天数计数器
17     }
18     if(all_days!=0)
19         printf("%d days total:%.1f%% were below freezing.\n",
20             all_days,100.0*(float)cold_days/all_days);
21     if(all_days==0)
22         printf("No data entered!\n");
23     return 0;
24 }
复制代码

3.在If 语句中添加else关键字

复制代码
1 if(expression)
2       statement1
3 else
4       statement2
5 //如果希望在if和else之间有多条语句,则必须用于{}
 
复制代码
  • ch=getchar();  ==  scanf("%c",&ch);
  • ch=putchar();  ==  printf("%c",ch);//他们不需要格式说明符,因为他们只对字符起作用
  • 字符实际上是作为整数被存储的。
  • c风格:while((ch=getchar())!='\n')  //ch不等于换行符。
改变输入,只保留其中的空格
  • 在多重选择else if语句中,如果没有花括号指明,则else和它最接近的if配对,编译器是忽略编排的。#显示一个数的约数!<stdbool.h>

4.获得逻辑性

  • (exp1  && exp2)  运算符“与”,当两个关系表达式都为真的时候为真。
  • (exp1  ||  exp2)   运算符“或”,当两个表达式中至少一个为真时为真。
  • (!q)                    运算符“非”。
  • 优先级:最好使用().逻辑表达式从左到右求值,一旦发现有使表达式为假的因素,立即停止求值。
  • if(10<=n<=30)  //请不要这样书写表达式,该代码是个语义错误不是语法错误,所以编译器并不会捕获它。

5.条件运算符?:(唯一一个 三元运算符)

  • 这个运算符带着三个操作数,每个操作数都是一个表达式 。
  • expression1 ? expression 2:expression 3  //如果1为真,整个表达式的值为2,否则为3.
复制代码
 1 //使用条件运算符
 2 #include<stdio.h>
 3 #define CONVERACE  200
 4 int main(void)
 5 {
 6     int sq_feet;
 7     int cans;
 8 
 9     printf("Enter number of square feet to be painted:\n");
10     while(scanf("%d",&sq_feet)==1)
11     {
12         cans=sq_feet/CONVERACE;
13         cans+=((sq_feet%CONVERACE==0))?0:1;
14         printf("You need %d %s of print.\n",cans,cans==1?"can":"cans");
15         printf("Enter next value(q to quit):\n");
16     }
17     return 0;
18 }
复制代码

 6.循环辅助手段continue和break

(1)continue适用于三种循环模式,当运行到该语句时它导致剩下的迭代部分被忽略,开始下一次迭代。可以再主语句中消除一级缩排,还可以作为占位符。

while((ch=getchar())!='\n')

{   if(ch=='\t')

continue;

putchar(ch);

}//该循环跳过制表符,并且仅当遇到换行符时退出。

 

复制代码
 1 //使用continue跳过部分循环
 2 //程序接受输入一系列数字,然后输出最小值和最大值
 3 #include<stdio.h>
 4 int main(void)
 5 {
 6     const float MIN=0.0f;
 7     const float MAX=100.0f;
 8 
 9     float score;
10     float total=0.0f;
11     int n=0;
12     float min=MAX;
13     float max=MIN;
14 
15     printf("Enter the first score(q to quit):");
16     while(scanf("%f",&score)==1)
17     {
18         if(score<MIN||score>MAX)
19         {
20             printf("%0.1f is an invalid value,try again:",score);
21             continue;
22         }
23         printf("Accepting %0.1f:\n",score);
24         min=(score<min)?score:min;
25         max=(score>max)?score:max;
26         total+=score;
27         n++;
28         printf("Enter next score (q to quit):");
29     }
30     if(n>0)
31     {
32         printf("Average of %d scores is %0.1f.\n",n,total/n);
33         printf("Low=%0.1f,high=%0.1f\n",min,max);
34     }
35     else
36         printf("No valid scores were entered.\n");
37     return 0;
38 }
复制代码

(2)break语句导致程序终止包含它的循环,并进行程序的下一阶段。break语句使程序转到紧接着该循环后的第一天语句去执行,在for循环中,与continue不同,控制段的更新部分也将被跳过,嵌套循环中的break语句只是使程序跳出了里层的循环,要跳出外层的循环则需要另外的break语句。

使用break语句跳出循环

7.多重选择:switch和break

复制代码
 1 //使用swithch语句
 2 #include<stdio.h>
 3 #include<ctype.h>
 4 int main(void)
 5 {
 6     char ch;
 7     printf("Give me a letter of the alphabet,and I will give an animal name\n");
 8     printf("beginning with that letter.\n");
 9     printf("Please type in a letter:type # to end my cat.\n");
10     while((ch=getchar())!='#')
11     {
12         if('\n'==ch)
13             continue;
14         if(islower(ch))
15             switch(ch)
16             {
17             case 'a':
18                 printf("argali,a wild sheep of Asia\n");
19                 break;
20             case 'b':
21                 printf("babirusa, a wild pig of Malay\n");
22                 break;
23             case 'c':
24                 printf("coati,racoonlike mammal\n");
25                 break;
26             case 'd':
27                 printf("desman,aquatic,molelike critter\n");
28                 break;
29             case 'e':
30                 printf("echidna,the spiny anteater\n");
31                 break;
32             case 'f':
33                 printf("fisher,brownish marten\n");
34                 break;
35             default:
36                 printf("That's a stumper!\n");
37         }//switch语句结束。
38         else
39             printf("I recognize only lowercase letters.\n");
40         while(getchar()!='\n')
41             continue;//跳过输入行的剩余部分
42         printf("please type another letter or a #.\n");
43     }//while循环结束
44     printf("Bye!\n");
45     return 0;
46 }
复制代码
  • 紧跟在switch后圆括号里的表达式被求值,然后程序扫描标签列表,直到搜索到一个与该值相匹配的标签。
  • 如果没有break语句,从相匹配的标签到switch末尾的每条语句都将被处理。
  • 圆括号中的switch判断表达式应该具有整数值(包括char类型),不能用变量作为case标签。
  • 可以对一个给定的语句使用多重case标签。

8.goto语句

  • 应该避免goto语句,具有讽刺意味的是,C不需要goto,却有一个比大多数语言更好的goto,它允许在标签中使用描述性的标签而不仅仅是数字
C语言语句篇——分支语句 Hello~我是芝士,前面的文章中给大家介绍了一些C语言初识篇的内容,对C语言的一些基本的语法以及程序的书写有了初步认识,后面给大家分享C语言语句篇,本篇分享C语言的分支语句。 阅读详情

相关推荐

【C语言】分支和循环

C语言是结构化的程序设计结构,这里的结构是指。我们可以使用实现分支结构,使用实现循环结构。

2301_76762420的博客 451

关于getchar()输入去掉除第一个字符剩下的输入行的办法

当你想逐个字符的把大写字符转化为小写字母时,不可避免的输入换行建,而getchar会把回车换行输入或者当你输入多个字符时,也会把每个字符输入进去 例如: #include <stdio.h> //从键盘上输入一个字符,如果它是大写字母,则把它转换成小写字母输出;否则,直接输出。 int main(void) { char ch; while((ch=getchar()) != '...

jxfuzmx的博客 1765

Allegro模块复用:从原理图到PCB的完整流程与关键细节

本文详细介绍了Allegro模块复用从原理图到PCB的完整流程与关键细节,包括DSN和MDD文件的创建、模块调用的实战技巧以及双向同步与版本控制方法。通过标准化处理和高级复用技巧,能显著提升PCB设计效率,减少重复工作时间。适用于智能硬件和工业控制等领域的工程师。

weixin_30252709的博客 332

C缓冲区(输入输出问题)

之前做电子通讯录出现过一个问题,有“1,2,3”几个数字对应的功能供用户选择,但只要每次用户输入英文字母或者其他不适数字类的东西,通讯录就会崩溃,后来发现这个缓冲区有关。 scanf和printf都是行缓冲。若缓冲区内始终有不确定的内容,很容易对程序的稳定性造成影响。 所以后来写了个清除缓冲区的函数 void clear_cache()//跳过输入行的剩余部分,清空缓冲区 { wh

guanyasu的博客 616

NMOS管和PMOS管做开关控制电路

NMOS管和PMOS管做开关控制电路

while(1) 3万+

避坑指南:LAMMPS做GCMC模拟时,化学势mu和压力p到底怎么设?

本文详细解析了LAMMPS中巨正则蒙特卡洛(GCMC)模拟的关键参数设置,特别是化学势(mu)与压力(p)的正确计算方法。通过理论分析、实用公式和黄金法则,帮助用户避免常见误区,提升模拟精度和效率,适用于各类复杂体系的分子模拟研究。

weixin_42525289的博客 429

C语言分支语句

各位佬和未来的佬们:大家好!今天我们来聊聊C语言中的分支语句在了解分支语句之前,我们得先了解什么是语句C语言的语句主要分为以下五种:1,表达式语句2,函数调用语句3,控制语句4,复合语句5,空语句今天要聊得分支语句就属于控制语句之中,控制语句是用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持的结构方式:顺序结构、选择结构、循环结构)C语言是一门结构化的程序设计语言,如果我们仔细观察周围,世界上的任何事情都可以由C语言的三种结构表示。

2401_86792434的博客 1777

linux 驱动 - pinctrl子系统

分析总结 pinctrl 子系统框架结构,平台 mtk6771 内核版本 kernel-4.4 , 本文所有的分析均基于此版本。

sty01z的博客 1557

C语言分支结构

Hello,everyone! 害, forever好久没写博客了,最近有时间又来写写,纯属小白,写博客只为更好的记忆和理解,哈哈哈!也希望我自己的理解能给大家带来一点帮助!如有不足之处,请大家多多指教! 上一篇是直接放了一段代码,然后一步一步分析代码,走进C语言初识,这一篇我们就直接到分支结构,当然C初识,还有很多知识点,我会在后面的每一篇里遇到问题再详细介绍! C语言分支结构 1. if分支语句 语法结构: 1.以下是单纯的 if 语句,如果表达式为真,执行语句;否则为假时,不执行语句;在C语言中0为

forever的博客 4096

【中软软件测试笔试题】中国软件与技术服务股份有限公司笔试一卷

请分别写出ISO7层架构,并分别说明TCP、UDP协议分别在处于哪一层,以及TCP、 UPD协议有什么区别。 答:7 应用层 6 表示层 5 会话层 4 传输层 3网络层 2 数据链路层 1 物理层 第四层;UDP是面向无连接、不可靠数据传输协议; TCP是面向连接、可靠数据传输协议......

Yanan990830的博客 1815

研发工作量科学量化评估模型:从多维系数到等级落地指南

摘要:本文提出了一套基于多维系数的科学量化评估模型,用于精准评估软件开发工作量。该模型从需求复杂度、技术难度、质量要求和依赖风险四个核心维度进行量化评估,通过系数乘积计算综合工作量。文章详细说明了各维度的系数区间划分标准,并演示了从基础工作量估算到综合系数计算的具体步骤。该模型通过结构化评估过程,将主观经验转化为客观量化指标,帮助团队提高工作量评估的准确性,增强项目交付的可预测性。其价值在于使评估过程透明化、结构化和可追溯,从而减少项目延期风险,优化资源规划。

友莘居士的博客 1679

c语言分支语句

C语言语句分为以下五类1.表达式语句2.函数调用语句3.控住语句4.复合语句5.空语句本次介绍的是控制语句控制语句:用于控制程序的执行流程,已实现程序的各种结构方式【顺序结构、选择结构、循环结构】,它们由特定的语句定义符组成,c元有九种控制语句。可以成以下三个类:1.条件判断语句也叫分支语句:if语句、Switch语句;2.循环执行语句:do while语句、while语句、for语句;3.转向语句:break语句、goto语句、continue语句、return语句;

y3245239334的博客 1867

从solidworks导出URDF模型

一、下载sw_urdf_exporter插件 ROS目前提供了SolidWorks转URDF的插件,叫做sw_urdf_exporter,从http://wiki.ros.org/sw_urdf_exporter下载sw2urdfSetup.exe文件,下载后点击安装,安装完成后就能在solidworks中导出URDF模型了。 二、创建solidworks模型 下面以较为简单的四轮小车为例进行说...

weixin_45168199的博客 4万+

初级C语言之【分支语句】

初级C语言之【分支语句】

春人.的博客 2154

PID控制算法实践应用(一):PID算法的离散化

由于计算机控制是一种采样控制,它只能根据采样时刻的偏差值计算控制量。因此,连续PID控制算法不能直接使用,需要采用离散化方法。

m0_72676510的博客 2601

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

C语言中的分支语句

分支语句 (1)if (2)switch 在C语言当中,由一个分号;隔开的就是一条语句.比如: printf("Hello World!\n"); 分支语句就像是选择,不同的选择通往不同的方向,也就产生了不同的分支.先来看if语句的语法结构. (1) if(表达式) 语句; (2) if(表达式) 语句1; else 语句2; (3) if(表达式1) 语...

persistence_Y的博客 1752

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【C语言】分支语句详解

C语言分支语句详解

qq_51236677的博客 1529

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【思维导图】C语言—分支与循环

像for循环,while循环,do-while循环,以及各循环的之间使用的区别,在循环里面又涉及break语句,contiune语句,goto语句,最后以我们现有C语言的知识我们还学会了一个关机小程序,这个关机小程序我有详细的一篇博客介绍,同时还有这个思维导图的详细知识博客,都已经贴在下面啦~里面包括 if语句,if-else语句,switch-case语句,语句中同时涉及运算,所以我们又学习了各种操作符,像。上节我们回顾了C语言数据类型与变量,今天我们来回顾。,即分为两大点,分支,循环,

稻草人 2511

C语言——分支语句

在现实生活中,我们经常会遇到作出选择和判断的时候,在C语言中也同样要面临作出选择和判断的时候,所以今天,就让我们一起来了解一下,C语言是如何作出选择判断的。

m0_74476035的博客 1240

【C语言初阶】详解分支语句

什么是分支语句?如果条件满足才能做某件事情,如果条件不满足就做另外一件事情,或者什么也不做。分支语句又被称为“判断语句”,正因为有了判断,才让程序有了很多的分支。

weixin_50486535的博客 4203

C语言:分支结构

我们在程序设计往往会遇到如下的问题,比如下面的函数的计算也就是我们是必须要通过一个条件的结果来选择下一步的操作,算法上属于一个分支结构,C语言中实现分支结构主要使用if语句。

2403_88736889的博客 946

【C语言】分支语句

C语言是一门结构化的语言,它可分为顺序结构,选择结构和循环结构。本文就介绍了C语言中的选择结构的部分也就是分支语句的基础内容以上就是今天要讲的内容,本文只是简单的介绍了ifelse和switch的分支语句的使用方法,实际编程中将会经常结合多种函数来使用。希望这篇文章能够帮你理解分支语句的结构和使用。......

weixin_47959560的博客 1391

C语言基础【分支语句】

目录 一.选择语句 二.循环语句 三.函数 一.选择语句 在我们的日常生活中,经常会面临着许多的选择,而往往这些不同的选择也伴随着不同的结果,例如在大学中,如果你好好学习,毕业时会有一份好的工作,而如果你不思进取,荒废学业,那么最终在毕业时也会面临失业。 在C语言中就有这么一种语句来描述这些选择以及最终产生的结果。 C语言中的选择语句有两种分别为 if-else语句和switch语句 首先介绍 if -else语句: if-else语句的书写...

smf12138的博客 2881
上一篇: C语言之循环语句
下一篇: C语言之输入和输出
Shicuf
博客等级 码龄16年 11粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值