聊一聊开发语言的基础控制结构

一、描述下for循环、while循环和do-while循环的区别和用法。

在编程中,for循环、while循环和do-while循环是用于重复执行一段代码直到满足特定条件的控制结构。每种循环都有其特定的用途和语法。以下是它们之间的区别和用法:

1. for循环

用法for循环通常用于在知道循环次数的情况下,重复执行一段代码。

语法

|---|------------------------|
| | for (初始化; 条件; 更新) { |
| | // 循环体 |
| | } |

  • 初始化:在循环开始之前设置循环控制变量的初始值。
  • 条件:每次循环迭代之前都会检查的条件。如果条件为真,则执行循环体;如果为假,则退出循环。
  • 更新:在每次循环迭代之后更新循环控制变量。

示例

|---|-----------------------------------|
| | for (int i = 0; i < 10; i++) { |
| | printf("%d ", i); |
| | } |
| | // 输出:0 1 2 3 4 5 6 7 8 9 |

2. while循环

用法while循环用于在不知道循环次数的情况下,根据某个条件重复执行一段代码。

语法

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

  • 条件:在每次循环迭代之前都会检查的条件。如果条件为真,则执行循环体;如果为假,则退出循环。

示例

|---|-----------------------------|
| | int i = 0; |
| | while (i < 10) { |
| | printf("%d ", i); |
| | i++; |
| | } |
| | // 输出:0 1 2 3 4 5 6 7 8 9 |

3. do-while循环

用法do-while循环与while循环类似,但不同之处在于它至少会执行一次循环体,然后再检查条件。

语法

|---|-----------------|
| | do { |
| | // 循环体 |
| | } while (条件); |

  • 条件:在每次循环迭代之后检查的条件。如果条件为真,则继续执行循环体;如果为假,则退出循环。

示例

|---|-----------------------------|
| | int i = 0; |
| | do { |
| | printf("%d ", i); |
| | i++; |
| | } while (i < 10); |
| | // 输出:0 1 2 3 4 5 6 7 8 9 |

区别

  • 执行次数forwhile循环可能会一次都不执行(如果初始条件不满足),而do-while循环至少会执行一次。
  • 灵活性for循环更适用于知道循环次数的情况,因为它可以直接在循环声明中设置循环控制变量的初始值、条件和更新。而whiledo-while循环则更灵活,可以根据需要在循环体内设置和更新循环控制变量。
  • 可读性 :在某些情况下,使用for循环可以使代码更简洁和易读,因为它将循环控制的所有元素都集中在一个地方。但在其他情况下,使用whiledo-while循环可能更合适,因为它们允许更灵活地控制循环的执行。
  • 二、编写一个使用switch语句的示例
  • 当使用switch语句时,我们通常用于基于某个变量的值来执行不同的代码块。下面是一个简单的使用switch语句的示例,该示例基于用户输入的整数来打印不同的消息:

|---|-----------------------------------|
| | #include <stdio.h> |
| | |
| | int main() { |
| | int day; |
| | |
| | printf("请输入一周中的某一天的数字(1-7):"); |
| | 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("输入无效,请输入1到7之间的数字\n"); |
| | } |
| | |
| | return 0; |
| | } |

在这个示例中,程序首先提示用户输入一周中的某一天的数字(1代表星期一,7代表星期日)。然后,使用scanf函数读取用户输入的整数并将其存储在变量day中。接下来,switch语句根据day的值执行相应的case块。每个case块都包含一个与day的值相匹配的整数,并打印出对应的天数。如果day的值不匹配任何case块,则执行default块,打印出一个错误消息。

注意,在每个case块的末尾都有一个break语句,它的作用是跳出switch语句,防止程序继续执行下一个case块。如果没有break语句,程序将继续执行下一个case块,直到遇到breakswitch语句的末尾为止,这通常被称为"case穿透"或"case fall-through"。在大多数情况下,为了避免意外的行为,我们通常会在每个case块的末尾添加break语句。

相关推荐
Ajiang28247353041 小时前
对于C++中stack和queue的认识以及priority_queue的模拟实现
开发语言·c++
盼海1 小时前
排序算法(五)--归并排序
数据结构·算法·排序算法
幽兰的天空1 小时前
Python 中的模式匹配:深入了解 match 语句
开发语言·python
Theodore_10224 小时前
4 设计模式原则之接口隔离原则
java·开发语言·设计模式·java-ee·接口隔离原则·javaee
网易独家音乐人Mike Zhou4 小时前
【卡尔曼滤波】数据预测Prediction观测器的理论推导及应用 C语言、Python实现(Kalman Filter)
c语言·python·单片机·物联网·算法·嵌入式·iot
----云烟----6 小时前
QT中QString类的各种使用
开发语言·qt
lsx2024066 小时前
SQL SELECT 语句:基础与进阶应用
开发语言
开心工作室_kaic6 小时前
ssm161基于web的资源共享平台的共享与开发+jsp(论文+源码)_kaic
java·开发语言·前端
向宇it6 小时前
【unity小技巧】unity 什么是反射?反射的作用?反射的使用场景?反射的缺点?常用的反射操作?反射常见示例
开发语言·游戏·unity·c#·游戏引擎
武子康6 小时前
Java-06 深入浅出 MyBatis - 一对一模型 SqlMapConfig 与 Mapper 详细讲解测试
java·开发语言·数据仓库·sql·mybatis·springboot·springcloud