(分支语句与循环语句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 语句的判断部分。进行下一次循环的入口判断。

好啦!!!


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


下一篇我们接着讲哈!


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


谢谢大家!!!


相关文章
|
3月前
|
C语言
初识C语言2——分支语句和循环语句
初识C语言2——分支语句和循环语句
80 5
|
3月前
|
安全 编译器 C语言
C++入门1——从C语言到C++的过渡
C++入门1——从C语言到C++的过渡
73 2
|
30天前
|
存储 NoSQL 编译器
【C语言】指针的神秘探险:从入门到精通的奇幻之旅 !
指针是一个变量,它存储另一个变量的内存地址。换句话说,指针“指向”存储在内存中的某个数据。
84 3
【C语言】指针的神秘探险:从入门到精通的奇幻之旅 !
|
3月前
|
C语言
【c语言】分支语句
C语言通过三种基本结构——顺序、选择和循环,构建复杂的程序逻辑。本文主要介绍了C语言的选择结构,即if-else语句及其变体,包括简单的if语句、if-else组合、else if多分支判断、嵌套if以及解决悬空else问题的方法。此外,还详细讲解了逻辑运算符和关系运算符的使用,以及如何利用条件操作符简化逻辑判断。最后,文章对比了if-else与switch语句在实现多分支逻辑时的应用,并解释了switch语句中的break和default关键字的作用。
41 8
|
3月前
|
存储 Java 编译器
初识C语言1——C语言入门介绍
初识C语言1——C语言入门介绍
37 1
|
3月前
|
Serverless C语言
C语言控制语句:分支、循环和转向
C语言控制语句:分支、循环和转向
|
3月前
|
C语言
教你快速理解学习C语言的循环与分支
教你快速理解学习C语言的循环与分支
21 0
|
3月前
|
C语言
回溯入门题,数据所有排列方式(c语言)
回溯入门题,数据所有排列方式(c语言)
|
30天前
|
存储 C语言 开发者
【C语言】字符串操作函数详解
这些字符串操作函数在C语言中提供了强大的功能,帮助开发者有效地处理字符串数据。通过对每个函数的详细讲解、示例代码和表格说明,可以更好地理解如何使用这些函数进行各种字符串操作。如果在实际编程中遇到特定的字符串处理需求,可以参考这些函数和示例,灵活运用。
58 10

相关实验场景

更多