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


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

相关文章
|
4天前
|
C语言
C语言之循环语句
C语言之循环语句
28 0
|
2天前
|
C语言
C语言——入门分支与循环
C语言——入门分支与循环
3 0
|
4天前
|
C语言
初识C语言~循环语句
初识C语言~循环语句
|
4天前
|
C语言
初识C语言~分支语句
初识C语言~分支语句
|
4天前
|
C语言
【精通C语言】:分支结构if语句的灵活运用
【精通C语言】:分支结构if语句的灵活运用
26 1
|
4天前
|
存储 缓存 算法
C语言循环语句的探讨与实践
C语言循环语句的探讨与实践
23 1
|
4天前
|
C语言
【C生万物】C语言分支和循环语句
【C生万物】C语言分支和循环语句
|
C语言
《C语言及程序设计》实践项目——三种循环语句
返回:贺老师课程教学链接  【项目1:利用循环求和】求1000以内所有偶数的和要求:请编出3个程序来,分别用三种循环语句完成,注意体会各种循环语句的执行过程及语法特点。[参考解答]【项目2:求阶乘】输入n,求 n! 并输出[参考解答] 【项目3:输出这样的整数】输出1000以内能被3整除且个位数为6的所有整数。请在下面代码的基础上完成程序: #include &lt;stdio.h&gt; i
984 0
|
2天前
|
C语言
C语言—内存函数的实现和模拟实现(内存函数的丝绸之路)
C语言—内存函数的实现和模拟实现(内存函数的丝绸之路)
17 0
|
2天前
|
C语言
C语言—字符函数与字符串函数(字符问题变简单的关键之技)
C语言—字符函数与字符串函数(字符问题变简单的关键之技)
4 0

相关实验场景

更多