(分支语句与循环语句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

分支语句和循环语句


分支语句

if

switch


循环语句

while

for

do while

goto语句  

 

1. 什么是语句?


C 语句可分为以下五类:

1. 表达式语句

2. 函数调用语句

3. 控制语句

4. 复合语句

5. 空语句


37.png



控制语句 用于控制程序的执行流程,以实现程序的各种结构方式,它们由特定的语句定义符组成, C 语 言有九种控制语句。

可分成以下三类:

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

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

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

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

如果你好好学习,校招时拿一个好 offer ,走上人生巅峰。

如果你不学习,毕业等于失业,回家卖红薯。

这就是选择!

2.1 if语句

那 if 语句的语法结构是怎么样的呢?

语法结构:

if ( 表达式 )
    语句 ;
if ( 表达式 )
    语句 1 ;
else
    语句 2 ;
// 多分支    
if ( 表达式 1 )
    语句 1 ;
else if ( 表达式 2 )
    语句 2 ;
else
    语句 3 ;
演示代码:
#include <stdio.h>
// 代码 1
int main ()
{
int age = 0 ;
    scanf ( "%d" , & age );
    if ( age < 18 )
  {
        printf ( " 未成年 \n" );
  }
}
// 代码 2
#include <stdio.h>
int main ()
{
int age = 0 ;
    scanf ( "%d" , & age );
    if ( age < 18 )
  {
        printf ( " 未成年 \n" );
  }
    else
  {
        printf ( " 成年 \n" );
  }
}
// 代码 3
#include <stdio.h>
int main ()
{
int age = 0 ;
    scanf ( "%d" , & age );
    if ( age < 18 )
  {
        printf ( " 少年 \n" );
  }
    else if ( age >= 18 && age < 30 )
  {
        printf ( " 青年 \n" );
  }
    else if ( age >= 30 && age < 50 )
  {
      printf ( " 中年 \n" );
  }
    else if ( age >= 50 && age < 80 )
  {
        printf ( " 老年 \n" );
  }
    else
  {
        printf ( " 老寿星 \n" );
  }
}

解释一下:

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

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

0 表示假,非 0 表示真。

38.png

左边这个程序是怎么算的呢?其实我们以输入10为例,10输入进去后,先是 18<=10 为假  然后程序变为  0<40   ,然后0<40为真变为1,恒成立程序,进入程序内部。所以不要这么写 ,要写成:


39.png

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

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

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


40.png

2.1.1 悬空else


当你写了这个代码:

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

改正:

// 适当的使用 {} 可以使代码的逻辑更加清楚。

// 代码风格很重要

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

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


2.1.2 if书写形式的对比


// 代码 1
if ( condition ) {
    return x ;
}
return y ;
// 代码 2
if ( condition )
{
    return x ;
}
else
{
  return y ;
}
// 代码 3
int num = 1 ;
if ( num == 5 )
{
    printf ( "hehe\n" );
}
// 代码 4
int num = 1 ;
if ( 5 == num )
{
    printf ( "hehe\n" );
}

代码 2 和代码 4 更好,逻辑更加清晰,不容易出错。


41.png


这样的结果是打印出了  hehe  违背初始的意愿,所以我们一般用更好一点的方式去写

像这样


42.png43.png


这个时候如果写错了,编译器会报错的,更有利于我们发现问题。 这个写法适用于一个变量与一个常量相不相等的情况下(这将是一个很好的编程习惯)。

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