【C语言】“分⽀与循环第一章:开启创新之门,探索无尽可能性的第一篇章“2

简介: 【C语言】“分⽀与循环第一章:开启创新之门,探索无尽可能性的第一篇章“2

【C语言】“分⽀与循环第一章:开启创新之门,探索无尽可能性的第一篇章“1:https://developer.aliyun.com/article/1474618

二、switch语句

除了if语句,C语言还可以用switch语句来实现分支结构。switchswitch

语句是⼀种特殊形式的的elif…else 结构,⽤于判断条件有多个结果的情况。它把多重else改成更易⽤、可读性更好的形式。

switch (expression)
 {
   case value1: statement
   case value2: statement
     default: statement
 }

上⾯代码中,根据表达式expression 不同的值就执⾏相应的case分支。如果找不到对应的值,就执行default分支

注:

switch后的 expression 必须是整型表达式

case 后的值,必须是整形常量表达式

2.1 if语句和switch语句的对⽐

练习:输⼊任意⼀个整数值,计算除3之后的余数

 #include <stdio.h>
 int main()
 {
  int n = 0;
  scanf("%d", &n);
  if(n%3 == 0)
    printf("整除,余数为0\n");
   else if(n%3 == 1)
    printf("余数是1\n");
  else 
    printf("余数是2\n");
 return 0;
 }

改为switch语句:

#include <stdio.h>
int main()
{
  int n = 0;
  scanf("%d",&n);
  switch(n%3)
  {
  case 0:
    printf("整数,余数0\n");
    break;
  case:1
    printf("余数是1\n");
    break;
  case:2
    printf("余数是2\n");
    break;
  }
  return 0;
}

通过上述的代码中,我们要注意的点有:

1.case 和后边的数字之间必须有空格

2. 每⼀个case 语句中的代码执⾏完成后,需要加上 break ,才能跳出这个switch语句。

2.2 switch语句中的break

如果我们把前面代码的break去掉,又会发生什么情况呢?

#include <stdio.h>
 int main()
 {
  int n = 0;
  scanf("%d", &n);
  switch(n%3)
  {
   case 0:
    printf("整除,余数为0\n");  
   case 1:
    printf("余数是1\n");       
   case 2:
    printf("余数是2\n");       
  }
   return 0
 }

输出:

分析:13 除以3余数是1,那为什么又多出一行“余数是2”呢?

原因是switch语句是按分支运行的,只有switch语句中使用break才能跳出switch语句,如果一个分支case语句后没有break语句,代码会继续走,不会停,又可能执行其他case语句中的代码,直到break语句结束。就如上面代码就执行了case 中的语句。

2.3 switch语句中的default

在使⽤switch语句的时候,使⽤比如switch 后表达式中的值⽆法匹

配代码中的case 语句的时候,这时候要不就不做处理,要不就得在

switch 语句中加⼊default ⼦句。(与 ifelse 相似)

switch (expression) 
{
   case value1: statement
   case value2: statement
   default: statement
 }

switch 后边的expression 的结果不是default ⼦句。如果以这样完成代码:value1 ,也不是value2 的时候,就会执⾏default ⼦句。

输⼊⼀个1~7的数字,打印对应的星期⼏

例如:

输⼊:1 输出:星期⼀

输⼊:2 输出:星期⼆

输⼊:3 输出:星期三

输⼊:4 输出:星期四

输⼊:5 输出:星期五

输⼊:6 输出:星期六

输⼊:7 输出:星期天

#include <stdio.h>
 int main()
 {
    int day = 0;
    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;
    }
    return 0;
 }

如果改为要求:

1.输⼊1-5,输出的是“⼯作⽇”;

2.输⼊6-7,输出“休息⽇;

这时我们可以借助上面所谈到的switch没有break语句就会一直执行下去,因此:

#include <stdio.h>
 int main()
 {
  int day = 0;
  scanf("%d", &day);
  switch(day)
  {
  case 1:
  case 2:
    case 3:
    case 4:
    case 5:
      printf("⼯作⽇\n");
    break;
    case 6:
    case 7:
    printf("休息⽇\n");
  break;
 }
 return 0;

注:在switch语句中,casedefault的顺序问题是有规定的吗?default必须放在最后吗?实际上,在switch语句中,casedefault语句的顺序没有具体要求,只要满足实际需求即可。然而,通常我们会将default子句放在最后进行处理。

相关文章
|
9月前
|
C语言
初识C语言2——分支语句和循环语句
初识C语言2——分支语句和循环语句
176 5
|
5月前
|
人工智能 Java 程序员
一文彻底搞清楚C语言的循环语句
本文介绍了C语言中的三种循环语句:`while`、`do-while`和`for`,并详细解释了它们的语法格式、执行流程及应用场景。此外,还讲解了循环控制语句`break`和`continue`的使用方法。希望这些内容能帮助你在编程道路上不断进步,共同成长!
286 0
一文彻底搞清楚C语言的循环语句
|
C语言
【C语言】循环语句
C语言中循环语句的相关知识点
129 2
【C语言】循环语句
|
6月前
|
C语言
【C语言程序设计——循环程序设计】枚举法换硬币(头歌实践教学平台习题)【合集】
本文档介绍了编程任务的详细内容,旨在运用枚举法求解硬币等额 - 循环控制语句(`for`、`while`)及跳转语句(`break`、`continue`)的使用。 - 循环嵌套语句的基本概念和应用,如双重`for`循环、`while`嵌套等。 3. **编程要求**:根据提示在指定区域内补充代码。 4. **测试说明**:平台将对编写的代码进行测试,并给出预期输出结果。 5. **通关代码**:提供完整的代码示例,帮助理解并完成任务。 6. **测试结果**:展示代码运行后的实际输出,验证正确性。 文档结构清晰,逐步引导读者掌握循环结构与嵌套的应用,最终实现硬币兑换的程序设计。
104 19
|
6月前
|
算法 C语言
【C语言程序设计——循环程序设计】求解最大公约数(头歌实践教学平台习题)【合集】
采用欧几里得算法(EuclideanAlgorithm)求解两个正整数的最大公约数。的最大公约数,然后检查最大公约数是否大于1。如果是,就返回1,表示。根据提示,在右侧编辑器Begin--End之间的区域内补充必要的代码。作为新的参数传递进去。这个递归过程会不断进行,直到。有除1以外的公约数;变为0,此时就找到了最大公约数。开始你的任务吧,祝你成功!是否为0,如果是,那么。就是最大公约数,直接返回。
178 18
|
6月前
|
Serverless C语言
【C语言程序设计——循环程序设计】利用循环求数值 x 的平方根(头歌实践教学平台习题)【合集】
根据提示在右侧编辑器Begin--End之间的区域内补充必要的代码,求解出数值x的平方根;运用迭代公式,编写一个循环程序,求解出数值x的平方根。注意:不能直接用平方根公式/函数求解本题!开始你的任务吧,祝你成功!​ 相关知识 求平方根的迭代公式 绝对值函数fabs() 循环语句 一、求平方根的迭代公式 1.原理 在C语言中,求一个数的平方根可以使用牛顿迭代法。对于方程(为要求平方根的数),设是的第n次近似值,牛顿迭代公式为。 其基本思想是从一个初始近似值开始,通过不断迭代这个公式,使得越来越接近。
133 18
|
6月前
|
C语言
【C语言程序设计——循环程序设计】统计海军鸣放礼炮声数量(头歌实践教学平台习题)【合集】
有A、B、C三艘军舰同时开始鸣放礼炮各21响。已知A舰每隔5秒1次,B舰每隔6秒放1次,C舰每隔7秒放1次。编程计算观众总共听到几次礼炮声。根据提示,在右侧编辑器Begin--End之间的区域内补充必要的代码。开始你的任务吧,祝你成功!
139 13
|
6月前
|
存储 C语言
【C语言程序设计——循环程序设计】利用数列的累加和求 sinx(头歌实践教学平台习题)【合集】
项的累加和,一般会使用循环结构,在每次循环中计算出当前项的值(可能基于通项公式或者递推关系),然后累加到一个用于存储累加和的变量中。在C语言中推导数列中的某一项,通常需要依据数列给定的通项公式或者前后项之间的递推关系来实现。例如,对于一个简单的等差数列,其通项公式为。的级数,其每一项之间存在特定的递推关系(后项的分子是其前项的分子乘上。,计算sinx的值,直到最后一项的绝对值小于。为项数),就可以通过代码来计算出指定项的值。对于更复杂的数列,像题目中涉及的用于近似计算。开始你的任务吧,祝你成功!
167 6
|
6月前
|
C语言
【C语言程序设计——循环程序设计】鸡兔同笼问题(头歌实践教学平台习题)【合集】
本教程介绍了循环控制和跳转语句的使用,包括 `for`、`while` 和 `do-while` 循环,以及 `break` 和 `continue` 语句。通过示例代码详细讲解了这些语句的应用场景,并展示了如何使用循环嵌套解决复杂问题,如计算最大公因数和模拟游戏关卡选择。最后,通过鸡兔同笼问题演示了穷举法编程的实际应用。文中还提供了编程要求、测试说明及通关代码,帮助读者掌握相关知识并完成任务。 任务描述:根据给定条件,编写程序计算鸡和兔的数量。鸡有1个头2只脚,兔子有1个头4只脚。
355 5
|
10月前
|
安全 C语言
C语言循环的使用注意点
在C语言中,合理使用循环对于编写高效、安全的代码至关重要。以下是几点建议:确保循环条件正确以避免无限循环;每次迭代时正确更新循环变量;恰当使用`break`和`continue`控制执行流程;注意嵌套循环中的变量作用域;简化循环体内逻辑;根据需求选择合适的循环类型;注意数据类型以避免溢出;保持良好的缩进和注释习惯;减少重复计算以提升性能;确保循环终止条件明确。遵循这些建议,可以提高代码质量和可维护性。
373 88