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


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

相关文章
|
3月前
|
C语言
初识C语言2——分支语句和循环语句
初识C语言2——分支语句和循环语句
80 5
|
3月前
|
安全 编译器 C语言
C++入门1——从C语言到C++的过渡
C++入门1——从C语言到C++的过渡
74 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月前
|
C语言
【c语言】循环语句
循环结构是C语言中用于简化重复操作的重要工具,主要包括while循环、do-while循环和for循环。while循环是最基本的形式,通过不断检查条件来决定是否继续执行循环体。do-while循环则先执行循环体,再检查条件,至少执行一次。for循环逻辑更复杂,但使用频率最高,适合初始化、条件判断和更新变量的集中管理。此外,循环中还可以使用break和continue语句来控制循环的提前终止或跳过当前迭代。最后,循环可以嵌套使用,解决更复杂的问题,如查找特定范围内的素数。
54 6
|
3月前
|
存储 Java 编译器
初识C语言1——C语言入门介绍
初识C语言1——C语言入门介绍
37 1
|
3月前
|
C语言
教你快速理解学习C语言的循环与分支
教你快速理解学习C语言的循环与分支
21 0
|
3月前
|
小程序 C语言
初识C语言:走近循环
初识C语言:走近循环
|
3月前
|
C语言
回溯入门题,数据所有排列方式(c语言)
回溯入门题,数据所有排列方式(c语言)
|
30天前
|
存储 C语言 开发者
【C语言】字符串操作函数详解
这些字符串操作函数在C语言中提供了强大的功能,帮助开发者有效地处理字符串数据。通过对每个函数的详细讲解、示例代码和表格说明,可以更好地理解如何使用这些函数进行各种字符串操作。如果在实际编程中遇到特定的字符串处理需求,可以参考这些函数和示例,灵活运用。
59 10

相关实验场景

更多