C语言系列3——流程控制:条件语句与循环结构

目录

  • 写在开头
  • 1. if语句的应用与语法解析
  • 2. switch语句的使用技巧
  • 3. for与while循环的比较与实际运用
    • 3.1 for循环的使用
    • 3.2 while循环的使用
    • 3.3 比较与实际运用
  • 4. 练习题目
    • 4.1 题目介绍
    • 4.2 参考答案
  • 写在最后

写在开头

在程序设计中,流程控制结构是至关重要的,它们决定了程序的执行顺序和条件。本文将介绍条件语句(if语句和switch语句)以及循环结构(for循环和while循环),并讨论它们在实际编程中的应用。

1. if语句的应用与语法解析

在C语言中,if语句是一种用于根据给定条件执行不同代码块的条件语句。它的语法结构如下:

if (条件) {// 如果条件为真,执行这里的代码块
} else {// 如果条件为假,执行这里的代码块
}

在if语句中,条件可以是任何能够求值为真(非零)或假(零)的表达式。如果条件为真,则执行if语句后面的代码块;如果条件为假,则执行else后面的代码块。

例如,下面是一个简单的if语句示例:

int num = 10;if (num > 0) {printf("num是一个正数。\n");
} else {printf("num不是一个正数。\n");
}

在这个示例中,如果变量num的值大于0,则打印“num是一个正数。”;否则,打印“num不是一个正数。”。

if语句还可以嵌套使用,即在if或else代码块中包含另一个if语句。这种嵌套的if语句可以根据多个条件执行不同的代码块,从而实现更复杂的逻辑控制。

2. switch语句的使用技巧

switch语句是C语言中一种多分支选择结构,它根据表达式的值,选择性地执行与每个值相关联的代码块。switch语句的基本语法如下:

switch (表达式) {case1:// 如果表达式的值等于值1,执行这里的代码break;case2:// 如果表达式的值等于值2,执行这里的代码break;// 其他case语句...default:// 如果表达式的值不等于任何case的值,执行这里的代码
}

在switch语句中,表达式的值被逐个与每个case后面的值进行比较。如果找到与表达式值匹配的case值,则执行该case后面的代码块。如果没有找到匹配的case值,则执行default后面的代码块(可选)。

switch语句的使用有一些技巧:

  • 每个case后面的代码块通常都会以break语句结束,以确保只执行匹配的case。
  • case的值可以是常量表达式,但不能是变量或其他非常量表达式。
  • default子句是可选的,用于处理未匹配到任何case的情况,类似于if语句中的else部分。

下面是一个简单的switch语句示例:

int day = 3;
char* dayOfWeek;switch (day) {case 1:dayOfWeek = "星期一";break;case 2:dayOfWeek = "星期二";break;// 其他case语句...default:dayOfWeek = "未知";
}
printf("今天是%s。\n", dayOfWeek);

在这个示例中,根据变量day的值选择性地打印出相应的星期几。

3. for与while循环的比较与实际运用

for循环和while循环是两种常用的循环结构,它们都用于重复执行一段代码。它们的选择取决于具体的情况和需求。

3.1 for循环的使用

for循环通常用于在已知循环次数的情况下执行代码块。它的基本语法如下:

for (初始化表达式; 循环条件; 更新表达式) {// 循环体
}

在for循环中,初始化表达式用于初始化循环变量;循环条件用于指定循环继续执行的条件;更新表达式用于更新循环变量的值。循环体是在每次循环迭代中执行的代码块。

例如,下面的for循环用于输出1到10之间的所有偶数:

for (int i = 2; i <= 10; i += 2) {printf("%d\n", i);
}

3.2 while循环的使用

while循环通常用于在条件为真时重复执行代码块,直到条件不再为真为止。它的基本语法如下:

while (循环条件) {// 循环体
}

在while循环中,循环条件是一个表达式,当该表达式的值为真时,循环体会被执行。循环体执行完毕后,再次检查循环条件,如果仍为真,则继续执行循环体,直到循环条件为假时循环结束。

例如,下面的while循环用于计算1到100之间所有整数的和:

int sum = 0;
int i = 1;while (i <= 100) {sum += i;i++;
}printf("1到100之间所有整数的和为:%d\n", sum);

3.3 比较与实际运用

for循环和while循环各有其适用的场景。一般来说,当循环次数已知且固定时,使用for循环更加方便;而当循环次数不确定,需要根据条件来判断是否继续循环时,使用while循环更为合适。

4. 练习题目

4.1 题目介绍

为了加强对流程控制结构的理解和应用,以下是一些练习题目:

  1. 编写一个程序,接收用户输入的一个年份,然后判断该年份是否为闰年(使用if语句)。
  2. 编写一个程序,接收用户输入的一个整数,然后判断该数是奇数还是偶数(使用switch语句)。
  3. 编写一个程序,使用for循环输出1到10之间的所有偶数。
  4. 编写一个程序,使用while循环计算1到100之间所有整数的和。

4.2 参考答案

1.判断闰年的程序

#include <stdio.h>int main() {int year;// 获取用户输入的年份printf("请输入一个年份:");scanf("%d", &year);// 判断是否为闰年if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {printf("%d 年是闰年。\n", year);} else {printf("%d 年不是闰年。\n", year);}return 0;
}

2.判断奇偶数的程序

#include <stdio.h>int main() {int num;// 获取用户输入的整数printf("请输入一个整数:");scanf("%d", &num);// 判断是否为奇偶数switch (num % 2) {case 0:printf("%d 是偶数。\n", num);break;case 1:printf("%d 是奇数。\n", num);break;}return 0;
}

3.输出偶数的程序

#include <stdio.h>int main() {// 使用for循环输出1到10之间的所有偶数for (int i = 2; i <= 10; i += 2) {printf("%d ", i);}printf("\n");return 0;
}

4.计算整数和的程序

#include <stdio.h>int main() {int sum = 0;int i = 1;// 使用while循环计算1到100之间所有整数的和while (i <= 100) {sum += i;i++;}printf("1到100之间所有整数的和为:%d\n", sum);return 0;
}

写在最后

流程控制结构是编程中的基础,掌握好条件语句和循环结构对于编写清晰、高效的代码至关重要。希望本文的介绍能够帮助读者加深对流程控制结构的理解,并在实际编程中灵活运用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/682552.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

猫头虎分享已解决Bug || ValueError: No gradients provided for any variable

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

2019年通信工程师初级 实务 真题

文章目录 一、第9章 通信动力与环境通信电源系统的主要功能&#xff1a;“供”、“配”、“储”、“发”、“变” 二、第2章 传输网三、第3章 接入网四、第4章 互联网 一、第9章 通信动力与环境 【问题一】 网络通信设备对动力与环境的质量要求可以归纳为 &#xff08;1&#…

计算机服务器中了360后缀勒索病毒怎么办?360后缀勒索病毒处理流程

网络技术的不断应用与发展&#xff0c;为企业的生产运营提供了有利保障&#xff0c;越来越多的企业走向数字化办公模式&#xff0c;并且企业的发展离不开数据支撑&#xff0c;重视数据安全成为了众多企业关心的主要话题。春节前后&#xff0c;云天数据恢复中心接到很多企业的求…

创建一个多进程服务器和多线程服务器

多进程服务器 #include<myhead.h> #define PORT 8888 //端口号 #define IP "192.168.10.10" //IP地址//定义信号处理函数&#xff0c;用于回收僵尸进程 void handler(int signo) {if(signo SIGCHLD){while(waitpid(-1, NULL, WNOHAN…

C++:IO流

目录 关于CIO流 C/C中的日期输入 连续输入的问题 C文件IO流 运算符>>的运用 二进制读写 文本读写 stringstream 关于CIO流 C系统中ios为基类&#xff0c;其他类都是直接或间接派生自ios类 C标准库提供了4个全局流对象cin、cout、cerr、clog (在使用时候必须要包…

C语言——oj刷题——获取月份天数

题目&#xff1a; 描述 KiKi想获得某年某月有多少天&#xff0c;请帮他编程实现。输入年份和月份&#xff0c;计算这一年这个月有多少天。 输入描述&#xff1a; 多组输入&#xff0c;一行有两个整数&#xff0c;分别表示年份和月份&#xff0c;用空格分隔。 输出描述&…

LeetCode刷题计划

LeetCode刷题计划 推荐 代码随想录&#xff1a;https://github.com/youngyangyang04/leetcode-master 卡码网 练习ACM模式 https://kamacoder.com/ 01 #include <iostream> using namespace std;int main() {int a ,b;while(cin>>a>>b){cout<<ab<…

作业2024/2/14

指针练习 1、选择题 1.1、若有下面的变量定义&#xff0c;以下语句中合法的是&#xff08; A &#xff09;。 int i&#xff0c;a[10]&#xff0c;*p&#xff1b; A&#xff09; pa2; B&#xff09; pa[5]; C&#xff09; pa[2]2; D&#xff09; p&(i…

Go语言开发小技巧易错点100例(十二)

往期回顾&#xff1a; Go语言开发小技巧&易错点100例&#xff08;一&#xff09;Go语言开发小技巧&易错点100例&#xff08;二&#xff09;Go语言开发小技巧&易错点100例&#xff08;三&#xff09;Go语言开发小技巧&易错点100例&#xff08;四&#xff09;Go…

【AI视野·今日CV 计算机视觉论文速览 第293期】Fri, 19 Jan 2024

AI视野今日CS.CV 计算机视觉论文速览 Fri, 19 Jan 2024 Totally 103 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computer Vision Papers ParaHome: Parameterizing Everyday Home Activities Towards 3D Generative Modeling of Human-Object Interactions Aut…

PyTorch深度学习快速入门教程 - 【小土堆学习笔记】

小土堆Pytorch视频教程链接 声明&#xff1a; 博主本人技术力不高&#xff0c;这篇博客可能会因为个人水平问题出现一些错误&#xff0c;但作为小白&#xff0c;还是希望能写下一些碰到的坑&#xff0c;尽力帮到其他小白 1 环境配置 1.1 pycharm pycharm建议使用2020的&…

c入门第十五篇——学而时习之(阶段性总结)

古人说&#xff1a;“学而时习之。”古人又说&#xff1a;“温故而知新。”古人还说&#xff1a;“读书百遍&#xff0c;其义自见。” 总结一个道理那就是好书要反反复复的读&#xff0c;学习过的知识要时常去复习它&#xff0c;才有可能常读常新。 我&#xff1a;“师弟&…

蔚来面试解答

你的问题包含了多个方面&#xff0c;我会尽力逐一回答&#xff1a; 锁机制及锁膨胀过程&#xff1a; 锁机制是并发编程中用于控制多线程对共享资源访问的一种机制&#xff0c;以避免资源冲突导致的数据不一致问题。锁膨胀是指锁在运行时根据竞争情况可以升级的过程&#xff0c;…

【安装pytorch】

项目场景&#xff1a; 提示&#xff1a;这里简述项目相关背景&#xff1a; 例如&#xff1a;项目需求安装pytorch&#xff0c;安装神经网络环境配置。 问题描述 提示&#xff1a;这里描述项目中遇到的问题&#xff1a; 安装pytorch 官网 https://pytorch.org/ 详细看官方提供…

petalinux2018.3安装步骤

1、虚拟机安装ubuntu-16.04.7-desktop-amd64.iso &#xff08;注意&#xff1a;安装ubuntu-18.04.6-desktop-amd64.iso和ubuntu-16.04.6-desktop-i386.iso会报以下错误&#xff09; environment: line 314: ((: 10 #15~1 > 10 #3: syntax error in expression (error toke…

C#中使用 => 运算符的 switch 表达式

目录 一、关于switch 语句 1.switch 语句及语法结构 2.switch 语句的一些重要注意事项 3.通常情况下的示例 1.示例1 2.示例2 二、使用 > 运算符的 switch 表达式 1.关于switch表达式 2.示例1 3.示例2 一、关于switch 语句 1.switch 语句及语法结构 C# 中的 swit…

有用的 Bash 别名和函数简介

简介 随着你在命令行上的操作越来越多&#xff0c;你会发现你使用的大部分命令只是可用命令的一个非常小的子集。大多数任务是习惯性的&#xff0c;你可能每天都以相同的方式运行这些任务。 虽然许多常见命令实用程序的制造者已经尝试通过使用缩短的名称&#xff08;想想每天…

【Springboot】参数校验 spring-boot-starter-validation

# 第一步&#xff1a;引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId><version>xxx</version> </dependency> # 第二步&#xff1a;实体类添加…

Excel

1、Excel的学习路径 2、掌握excel的基础要求 01、保证新版本 02、培养好的数据表格习惯 03、主动性探索 04、多联系 一、函数 二、文本清洗函数 三、常见文本的清洗函数 获取k的位置 FIND("k",P2,1) 从第1个位置开始在位置P2&#xff0c;查询字段k&#x…

Java+SpringBoot+Vue:高校科研管理的技术革新

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…