(分支语句与循环语句p1) C语言从入门到入土(入门篇)(二)

简介: 分支语句和循环语句 1. 什么是语句? 2. 分支语句(选择结构) 2.1 if语句 2.1.1 悬空else 2.1.2 if书写形式的对比 2.1.3 练习 2.2 switch语句 2.2.1 在switch语句中的 break 2.2.2 default子句 2.2.3 练习 3. 循环语句 3.1 while循环 3.1.1 while语句中的break和continue

2.1.3 练习


1. 判断一个数是否为奇数

2. 输出 1-100 之间的奇数


44.png45.png

2.2 switch语句


switch 语句也是一种分支语句。

常常用于多分支的情况。


比如:

输入 1 ,输出星期一

输入 2 ,输出星期二

输入 3 ,输出星期三

输入 4 ,输出星期四

输入 5 ,输出星期五

输入 6 ,输出星期六

输入 7 ,输出星期日

那我没写成 if...else if ...else if 的形式太复杂,那我们就得有不一样的语法形式。

这就是 switch 语句。

switch ( 整型表达式 )

{

   语句项;

}

而 语句项 是什么呢?

// 是一些 case 语句:

// 如下:

case 整形常量表达式 :

   语句 ;

46.png47.png


2.2.1 在switch语句中的 break


在 switch 语句中,我们没办法直接实现分支,搭配 break 使用才能实现真正的分支。

比如:

#include <stdio.h>
int main ()
{
    int day = 0 ;
    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 ,输出的是 “weekday”;
2. 输入 6-7 ,输出 “weekend”
所以我们的代码就应该这样实现了:
#include <stdio.h>
//switch 代码演示
int main ()
{
    int day = 0 ;
    switch ( day )
  {
        case 1 :
case 2 :
        case 3 :
        case 4 :
        case 5 :
            printf ( "weekday\n" );
            break ;
        case 6 :
        case 7 :
            printf ( "weekend\n" );
            break ;
  }
    return 0 ;
}


break 语句 的实际效果是把语句列表划分为不同的分支部分。

编程好习惯

在最后一个 case 语句的后面加上一条 break 语句。

(之所以这么写是可以避免出现在以前的最后一个 case 语句后面忘了添加 break 语句)。


2.2.2 default子句


如果表达的值与所有的 case 标签的值都不匹配怎么办?

其实也没什么,结构就是所有的语句都被跳过而已。

程序并不会终止,也不会报错,因为这种情况在 C 中并不认为是个错误。

但是,如果你并不想忽略不匹配所有标签的表达式的值时该怎么办呢?

你可以在语句列表中增加一条 default 子句,把下面的标签

default :

写在任何一个 case 标签可以出现的位置。

当 switch 表达式的值并不匹配所有 case 标签的值时,这个 default 子句后面的语句就会执行。

所以,每个 switch 语句中只能出现一条 default 子句。

但是它可以出现在语句列表的任何位置,而且语句流会像执行一个 case 标签一样执行 default 子句。


448.png


(default放在第一行也是可以的,只是习惯放在最后一行)


编程好习惯

在每个 switch 语句中都放一条 default 子句是个好习惯,甚至可以在后边再加一个 break 。


2.2.3 练习

#include <stdio.h>
int main ()
{
    int n = 1 ;
  int m = 2 ;
    switch ( n )
  {
    case 1 :
            m ++ ;
    case 2 :
            n ++ ;
    case 3 :
            switch ( n )
          { //switch 允许嵌套使用
            case 1 :
                    n ++ ;
            case 2 :
                    m ++ ;
                    n ++ ;
                    break ;
          }
    case 4 :
            m ++ ;
            break ;
    default :
            break ;
  }
    printf ( "m = %d, n = %d\n" , m , n );
    return 0 ;
}

结果是:m=5,n=3

因为嵌套switch里面的break跳出循环时只能跳出里面的switch(即跳出case3),然后就执行case4.遇到break跳出外面的switch。


3. 循环语句


while

for

do while

3.1 while循环

我们已经掌握了, if 语句:

if ( 条件 )

   语句 ;

当条件满足的情况下, if 语句后的语句执行,否则不执行。

但是这个语句只会执行一次。

由于我们发现生活中很多的实际的例子是:同一件事情我们需要完成很多次。

那我们怎么做呢?

C 语言中给我们引入了: while 语句,可以实现循环。

//while 语法结构

while ( 表达式 )

循环语句 ;

while 语句执行的流程:

48.png

比如我们实现:

在屏幕上打印1-10的数字。

#include <stdio.h>
int main ()
{
     int i = 1 ;
     while ( i <= 10 )
     {
             printf ( "%d " , i );
                     i = i + 1 ;
     }
     return 0 ;
} 

上面的代码已经帮我了解了 while 语句的基本语法,那我们再了解一下:

3.1.1 while语句中的break和continue


break 介绍
//break 代码实例
#include <stdio.h>
int main ()
{
    int i = 1 ;
    while ( i <= 10 )
    {
          if ( i == 5 )
              break ;
              printf ( "%d " , i );
            i = i + 1 ;
     }
     return 0 ;
}

 


总结:


break在while循环中的作用:


其实在循环中只要遇到 break ,就停止后期的所有的循环,直接终止循环。

所以: while 中的 break 是用于 永久 终止循环的。

continue 介绍
//continue 代码实例 1
#include <stdio.h>
int main ()
{
        int i = 1 ;
                while ( i <= 10 )
     {
                  if ( i == 5 )
                        continue ;
                printf ( "%d " , i );
                i = i + 1 ;
       }
return 0 ;
}


这里代码输出的结果是什么?


总结:


continue 在 while 循环中的作用就是:

continue 是用于终止本次循环的,也就是本次循环中 continue 后边的代码不会再执行,

而是直接跳转到 while 语句的判断部分。进行下一次循环的入口判断。

好啦!!!


由于时间原因,今天就先到这里啦!


下一篇我们接着讲哈!


如果感觉对你有用,就来个点赞加关注吧!


谢谢大家!!!


相关文章
|
8月前
|
C语言
C语言分支和循环语句
分支语句由`if-else`构成,用于根据不同条件执行相应代码。`else`会与最近未配对的`if`结合,多个条件可用`else if`实现。若连续使用`if`,各条件互不影响。嵌套结构可在`if`中再加入`if-else`。此外,`switch`语句适用于多分支选择(注意表达式不能为浮点数,`case`后需加`break`)。循环语句包括`for`、`while`和`do...while`,注意`do...while`末尾需加分号。循环中,`break`直接终止循环,`continue`跳过当前循环剩余部分,但`for`的语句三仍会执行,而`while`中位置影响效果。
184 0
|
人工智能 Java 程序员
一文彻底搞清楚C语言的循环语句
本文介绍了C语言中的三种循环语句:`while`、`do-while`和`for`,并详细解释了它们的语法格式、执行流程及应用场景。此外,还讲解了循环控制语句`break`和`continue`的使用方法。希望这些内容能帮助你在编程道路上不断进步,共同成长!
1344 0
一文彻底搞清楚C语言的循环语句
|
C语言
【C语言程序设计——循环程序设计】枚举法换硬币(头歌实践教学平台习题)【合集】
本文档介绍了编程任务的详细内容,旨在运用枚举法求解硬币等额 - 循环控制语句(`for`、`while`)及跳转语句(`break`、`continue`)的使用。 - 循环嵌套语句的基本概念和应用,如双重`for`循环、`while`嵌套等。 3. **编程要求**:根据提示在指定区域内补充代码。 4. **测试说明**:平台将对编写的代码进行测试,并给出预期输出结果。 5. **通关代码**:提供完整的代码示例,帮助理解并完成任务。 6. **测试结果**:展示代码运行后的实际输出,验证正确性。 文档结构清晰,逐步引导读者掌握循环结构与嵌套的应用,最终实现硬币兑换的程序设计。
202 19
|
算法 C语言
【C语言程序设计——循环程序设计】求解最大公约数(头歌实践教学平台习题)【合集】
采用欧几里得算法(EuclideanAlgorithm)求解两个正整数的最大公约数。的最大公约数,然后检查最大公约数是否大于1。如果是,就返回1,表示。根据提示,在右侧编辑器Begin--End之间的区域内补充必要的代码。作为新的参数传递进去。这个递归过程会不断进行,直到。有除1以外的公约数;变为0,此时就找到了最大公约数。开始你的任务吧,祝你成功!是否为0,如果是,那么。就是最大公约数,直接返回。
375 18
|
Serverless C语言
【C语言程序设计——循环程序设计】利用循环求数值 x 的平方根(头歌实践教学平台习题)【合集】
根据提示在右侧编辑器Begin--End之间的区域内补充必要的代码,求解出数值x的平方根;运用迭代公式,编写一个循环程序,求解出数值x的平方根。注意:不能直接用平方根公式/函数求解本题!开始你的任务吧,祝你成功!​ 相关知识 求平方根的迭代公式 绝对值函数fabs() 循环语句 一、求平方根的迭代公式 1.原理 在C语言中,求一个数的平方根可以使用牛顿迭代法。对于方程(为要求平方根的数),设是的第n次近似值,牛顿迭代公式为。 其基本思想是从一个初始近似值开始,通过不断迭代这个公式,使得越来越接近。
382 18
|
C语言
【C语言程序设计——循环程序设计】统计海军鸣放礼炮声数量(头歌实践教学平台习题)【合集】
有A、B、C三艘军舰同时开始鸣放礼炮各21响。已知A舰每隔5秒1次,B舰每隔6秒放1次,C舰每隔7秒放1次。编程计算观众总共听到几次礼炮声。根据提示,在右侧编辑器Begin--End之间的区域内补充必要的代码。开始你的任务吧,祝你成功!
293 13
|
存储 C语言
【C语言程序设计——循环程序设计】利用数列的累加和求 sinx(头歌实践教学平台习题)【合集】
项的累加和,一般会使用循环结构,在每次循环中计算出当前项的值(可能基于通项公式或者递推关系),然后累加到一个用于存储累加和的变量中。在C语言中推导数列中的某一项,通常需要依据数列给定的通项公式或者前后项之间的递推关系来实现。例如,对于一个简单的等差数列,其通项公式为。的级数,其每一项之间存在特定的递推关系(后项的分子是其前项的分子乘上。,计算sinx的值,直到最后一项的绝对值小于。为项数),就可以通过代码来计算出指定项的值。对于更复杂的数列,像题目中涉及的用于近似计算。开始你的任务吧,祝你成功!
345 6
|
C语言
【C语言程序设计——循环程序设计】鸡兔同笼问题(头歌实践教学平台习题)【合集】
本教程介绍了循环控制和跳转语句的使用,包括 `for`、`while` 和 `do-while` 循环,以及 `break` 和 `continue` 语句。通过示例代码详细讲解了这些语句的应用场景,并展示了如何使用循环嵌套解决复杂问题,如计算最大公因数和模拟游戏关卡选择。最后,通过鸡兔同笼问题演示了穷举法编程的实际应用。文中还提供了编程要求、测试说明及通关代码,帮助读者掌握相关知识并完成任务。 任务描述:根据给定条件,编写程序计算鸡和兔的数量。鸡有1个头2只脚,兔子有1个头4只脚。
709 5
|
存储 编译器 C语言
【C语言程序设计——入门】C语言入门与基础语法(头歌实践教学平台习题)【合集】
本文档介绍了C语言环境配置和编程任务,主要内容包括: - **C语言环境配置**:详细讲解了在Windows系统上配置C语言开发环境的步骤。 - **第1关:程序改错**:包含任务描述、相关知识(如头文件引用、基本语法规则)、编程要求、测试说明及通关代码。 - **第2关:scanf函数**:涉及`scanf`和`printf`函数的格式与使用方法,提供编程要求、测试说明及通关代码。 文档结构清晰,涵盖从环境搭建到具体编程任务的完整流程,适合初学者学习和实践。
421 4
|
C语言
【C语言程序设计——入门】基本数据类型与表达式(头歌实践教学平台习题)【合集】
这份文档详细介绍了编程任务的多个关卡,涵盖C语言的基础知识和应用。主要内容包括: 1. **目录**:列出所有关卡,如`print函数操作`、`转义字符使用`、`数的向上取整`等。 2. **各关卡的任务描述**:明确每关的具体编程任务,例如使用`printf`函数输出特定字符串、实现向上取整功能等。 3. **相关知识**:提供完成任务所需的背景知识,如格式化输出、算术运算符、关系运算符等。 4. **编程要求**:给出具体的代码编写提示。 5. **测试说明**:包含预期输入输出,帮助验证程序正确性。 6. 文档通过逐步引导学习者掌握C语言的基本语法和常用函数,适合初学者练习编程技能。
342 1