0基础学习,详解C语言一——分支和循环

简介: 0基础学习,详解C语言一——分支和循环

(前面几篇文章都是简单介绍了C语言中的大体内容,接下来的文章为大家较为详细的介绍,让同学们对C语言有较为深的理解,可以自己写出点代码。)


C语句 可分为以下五类:

1. 表达式语句

2. 函数调用语句

3. 控制语句

4. 复合语句

5. 空语句

我们 本篇文章 主要介绍 控制语句 ,控制语句主要有 9类 。这里分为 三种        

1. 条件判断语句也叫分支语句:if语句、switch语句;

2. 循环执行语句:do while语句、while语句、for语句;

3. 转向语句:break语句、goto语句、continue语句、return语句。

接下来具体给大家介绍这9类。


1.分支语句(选择结构)


     【1】 if 语句(前面对if语句有一些了解了,这里就直接介绍语法了)、

语法结构:    

if ( 表达式 )

   语句 ;

if ( 表达式 )

   语句 1 ;

else

   语句 2 ;

// 多分支    

if ( 表达式 1 )

   语句 1 ;

else if ( 表达式 2 )

   语句 2 ;

else

   语句 3 ;

如果表达式的结果为 真 ,则语句执行。

在 C 语言中如何表示真假?

0 表示假,非 0 表示真。

注意:如果语句不加大括号,默认只执行一条语句。

那么如果条件成立,要执行 多条 语句,怎应该使用代码块。

#include <stdio.h>
int main ()
{
    if ( 表达式 )
  {
        语句列表 1 ;
  }
    else
  {
        语句列表 2 ;
  }
    return 0 ;
}

这里的一对 { } 就是一个代码块。

注意:else默认与往上最近的一个if配对。所以大括号很重要,它可以让你的代码更清晰,所以代码风格很重要,看下面这个代码:

#include <stdio.h>
int main ()
{
    int a = 0 ;
    int b = 2 ;
    if ( a == 1 )
  {
        if ( b == 2 )
      {
            printf ( "hello\n" );
      }
  }
    else
  {
        printf ( "hi\n" );
}      
    return 0 ;
}

else 的匹配 : else 是和它离的最近的 if 匹配的。


2.switch语句(多分支语句)


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

常常用于多分支的情况。

比如:

输入 1 ,输出星期一

输入 2 ,输出星期二

输入 3 ,输出星期三

输入 4 ,输出星期四

输入 5 ,输出星期五

输入 6 ,输出星期六

输入 7 ,输出星期日

这种的我们如果写成if else的话太复杂,这样我们引出了另一种语句 switch语句,来看语法:

switch ( 整型表达式 )
{
  case 1:       ;
  case:2:       ;
..........
}

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

例如我们看下面这个代码:

#include <stdio.h>
int main ()
{
    int day = 0 ;
   scanf("%d", &day);
    switch ( day )
  {
        case 1 :
            printf ( " 星期一 \n" );
        case 2 :
            printf ( " 星期二 \n" );
        case 3 :
            printf ( " 星期三 \n" );
        case 4 :
            printf ( " 星期四 \n" );
        case 5 :
            printf ( " 星期五 \n" );
        case 6 :
            printf ( " 星期六 \n" );
        case 7 :
            printf ( " 星期天 \n" );    
  }
    return 0 ;
}

我们输入 1,想得到 星期一这个输出结果。但运行结果却是这样:

怎么 星期一到星期天都 输出了。这时候我们就加入 break。 代码就变成这样:

#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,运行结果就是我们想要的了:


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

如果表达的值与所有的case标签的值都不匹配怎么办?你可以在语句列表中增加一条default子句,default语句的作用是:如果都不匹配就走default语句。当 switch 表达式的值并不匹配所有 case 标签的值时,这个 default 子句后面的语句就会执行。 所以,每个switch语句中只能出现一条default子句。 但是它可以出现在语句列表的任何位置。


3. 循环语句


    while语句

    for语句

   do while语句

 【1】while语句:语法:


while ( 表达式 )

循环语句 ;

当表达式中结果为真执行循环,当表达式中结果为假退出循环。(while前面介绍过了,这里再简单介绍一下。)

这里着重介绍一下 while语句中的break和continue 。

break就是跳出循环的意思。看下面一段代码示例:

当i小于5时进入循环,并且每次打印i的值,当i等于3时触发break跳出循环,循环结束,所以屏幕上应该只打印0  1  2。我们来看运行结果:


这与我们设想的一致。


break 在 while 循环中的作用:

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

再来介绍一下 continue , 它的作用是跳出本循环中剩余的语句,直接进入下次循环。

还是来看代码示例:

#include <stdio.h>
int main()
{
    int i = 0;
    while (i < 5) {
        i++;
        if (i == 3)
        {
            continue;
        }
        printf("%d\n", i);
    }
    return 0;
}

当i为3时,执行 continue语句,跳过本循环剩余的内容,所以下面的 printf语句不执行,直接进入下次循环。所以最后运行结果 打印的应该是小于5的除了 3之外的内容。打印 1 2 4 5 。

我们来看运行结果:

这与我们设想的一致。


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

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

而是直接 进行下一次循环的判断。

     【2】for 循环

先看语法: for (表达式1 ; 表达式2 ; 表达式3 )

             {  循环语句 ; }

表达式 1

表达式 1 为 初始化部分 ,用于初始化循环变量的。如 i=0 之类的

表达式 2

表达式 2 为 条件判断部分 ,用于判断循环时候终止。如 i<10 之类的

表达式 3

表达式 3 为 调整部分 ,用于循环条件的调整,如++,--之类的。

打印1-10的数字用for循环示例代码:

1 2 3分别对应表达式1 2 3,来看运行结果:


与我们预期的一致。


(注意:在for循环中也可以出现break和continue,他们的意义和在while循环中是一样的。这里就不多解释,可以自己实践一下。)


  【3】do...while()循环


  语法:


do

循环语句 ;

while (判断 表达式 );

它的特点是 先执行语句后判断 ,所以它 至少执行一次 。(使用场景有限,在初学时不经常使用。)

示例代码:

#include <stdio.h>
int main ()
{
int i = 8 ;
do
{
printf ( "%d\n" , i );
} while ( i < 8 );
return 0 ;
}

由于判断是 i<8 ,但我们 初始i 就是 8 ,所以代码只执行 一次 ,就是 开始的那一次 ,来看运行结果:

与我们设想的一致。

目录
打赏
0
0
0
0
16
分享
相关文章
一文彻底搞清楚C语言的循环语句
本文介绍了C语言中的三种循环语句:`while`、`do-while`和`for`,并详细解释了它们的语法格式、执行流程及应用场景。此外,还讲解了循环控制语句`break`和`continue`的使用方法。希望这些内容能帮助你在编程道路上不断进步,共同成长!
14 0
一文彻底搞清楚C语言的循环语句
|
2月前
|
【C语言程序设计——循环程序设计】枚举法换硬币(头歌实践教学平台习题)【合集】
本文档介绍了编程任务的详细内容,旨在运用枚举法求解硬币等额 - 循环控制语句(`for`、`while`)及跳转语句(`break`、`continue`)的使用。 - 循环嵌套语句的基本概念和应用,如双重`for`循环、`while`嵌套等。 3. **编程要求**:根据提示在指定区域内补充代码。 4. **测试说明**:平台将对编写的代码进行测试,并给出预期输出结果。 5. **通关代码**:提供完整的代码示例,帮助理解并完成任务。 6. **测试结果**:展示代码运行后的实际输出,验证正确性。 文档结构清晰,逐步引导读者掌握循环结构与嵌套的应用,最终实现硬币兑换的程序设计。
53 19
|
2月前
|
【C语言程序设计——循环程序设计】求解最大公约数(头歌实践教学平台习题)【合集】
采用欧几里得算法(EuclideanAlgorithm)求解两个正整数的最大公约数。的最大公约数,然后检查最大公约数是否大于1。如果是,就返回1,表示。根据提示,在右侧编辑器Begin--End之间的区域内补充必要的代码。作为新的参数传递进去。这个递归过程会不断进行,直到。有除1以外的公约数;变为0,此时就找到了最大公约数。开始你的任务吧,祝你成功!是否为0,如果是,那么。就是最大公约数,直接返回。
93 18
【C语言程序设计——循环程序设计】利用循环求数值 x 的平方根(头歌实践教学平台习题)【合集】
根据提示在右侧编辑器Begin--End之间的区域内补充必要的代码,求解出数值x的平方根;运用迭代公式,编写一个循环程序,求解出数值x的平方根。注意:不能直接用平方根公式/函数求解本题!开始你的任务吧,祝你成功!​ 相关知识 求平方根的迭代公式 绝对值函数fabs() 循环语句 一、求平方根的迭代公式 1.原理 在C语言中,求一个数的平方根可以使用牛顿迭代法。对于方程(为要求平方根的数),设是的第n次近似值,牛顿迭代公式为。 其基本思想是从一个初始近似值开始,通过不断迭代这个公式,使得越来越接近。
64 18
|
2月前
|
【C语言程序设计——循环程序设计】统计海军鸣放礼炮声数量(头歌实践教学平台习题)【合集】
有A、B、C三艘军舰同时开始鸣放礼炮各21响。已知A舰每隔5秒1次,B舰每隔6秒放1次,C舰每隔7秒放1次。编程计算观众总共听到几次礼炮声。根据提示,在右侧编辑器Begin--End之间的区域内补充必要的代码。开始你的任务吧,祝你成功!
63 13
|
2月前
|
【C语言程序设计——循环程序设计】利用数列的累加和求 sinx(头歌实践教学平台习题)【合集】
项的累加和,一般会使用循环结构,在每次循环中计算出当前项的值(可能基于通项公式或者递推关系),然后累加到一个用于存储累加和的变量中。在C语言中推导数列中的某一项,通常需要依据数列给定的通项公式或者前后项之间的递推关系来实现。例如,对于一个简单的等差数列,其通项公式为。的级数,其每一项之间存在特定的递推关系(后项的分子是其前项的分子乘上。,计算sinx的值,直到最后一项的绝对值小于。为项数),就可以通过代码来计算出指定项的值。对于更复杂的数列,像题目中涉及的用于近似计算。开始你的任务吧,祝你成功!
61 6
|
2月前
|
【C语言程序设计——循环程序设计】鸡兔同笼问题(头歌实践教学平台习题)【合集】
本教程介绍了循环控制和跳转语句的使用,包括 `for`、`while` 和 `do-while` 循环,以及 `break` 和 `continue` 语句。通过示例代码详细讲解了这些语句的应用场景,并展示了如何使用循环嵌套解决复杂问题,如计算最大公因数和模拟游戏关卡选择。最后,通过鸡兔同笼问题演示了穷举法编程的实际应用。文中还提供了编程要求、测试说明及通关代码,帮助读者掌握相关知识并完成任务。 任务描述:根据给定条件,编写程序计算鸡和兔的数量。鸡有1个头2只脚,兔子有1个头4只脚。
68 5
|
5月前
|
【c语言】分支语句
C语言通过三种基本结构——顺序、选择和循环,构建复杂的程序逻辑。本文主要介绍了C语言的选择结构,即if-else语句及其变体,包括简单的if语句、if-else组合、else if多分支判断、嵌套if以及解决悬空else问题的方法。此外,还详细讲解了逻辑运算符和关系运算符的使用,以及如何利用条件操作符简化逻辑判断。最后,文章对比了if-else与switch语句在实现多分支逻辑时的应用,并解释了switch语句中的break和default关键字的作用。
62 8
|
5月前
|
【c语言】循环语句
循环结构是C语言中用于简化重复操作的重要工具,主要包括while循环、do-while循环和for循环。while循环是最基本的形式,通过不断检查条件来决定是否继续执行循环体。do-while循环则先执行循环体,再检查条件,至少执行一次。for循环逻辑更复杂,但使用频率最高,适合初始化、条件判断和更新变量的集中管理。此外,循环中还可以使用break和continue语句来控制循环的提前终止或跳过当前迭代。最后,循环可以嵌套使用,解决更复杂的问题,如查找特定范围内的素数。
80 6
|
5月前
|
教你快速理解学习C语言的循环与分支
教你快速理解学习C语言的循环与分支
29 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等