分支语句和循环语句

目录

分支语句

if

switch

循环语句

while

for

do while


1.if语句

 语法结构:

if ( 表达式 )
    语句 ;
if ( 表达式 )
    语句 1 ;
else
    语句 2 ;
// 多分支    
if ( 表达式 1 )
    语句 1 ;
else if ( 表达式 2 )
    语句 2 ;
else
    语句 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");
  }
   
}

 如果条件成立,该如何执行多条语句

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

浮空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;
}

else的匹配:else是和他离得最近的if语句相匹配。

switch语句

switch语句也是一种多分支语句。通常适用于多分支的情况。

如:

输入 1 ,输出星期一
输入 2 ,输出星期二
输入 3 ,输出星期三
输入 4 ,输出星期四
输入 5 ,输出星期五
输入 6 ,输出星期六
输入 7 ,输出星期日

switch语句的实现

switch ( 整型表达式 )\\不能是浮点型
{
        case 整形常量表达式 :
            语句 ;
}

switch中的break

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

break可以阻断语句的进行
起到终止的作用
通过要求来设置break的位置
1.#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 ;
}
2.
#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 语句)。

default子句

如果表达的值与所有的 case 标签的值都不匹配怎么办?
其实也没什么,结构就是所有的语句都被跳过而已。
程序并不会终止,也不会报错,因为这种情况在 C 中并不认为是个错误。
但是,如果你并不想忽略不匹配所有标签的表达式的值时该怎么办呢?
你可以在语句列表中增加一条 default 子句,把下面的标签
default
写在任何一个 case 标签可以出现的位置。
switch 表达式的值并不匹配所有 case 标签的值时,这个 default 子句后面的语句就会执行。
所以,每个 switch 语句中只能出现一条 default 子句。
但是它可以出现在语句列表的任何位置,而且语句流会像执行一个 case 标签一样执行 default 子句。

编程好习惯
在每个 switch 语句中都放一条 default 子句是个好习惯,甚至可以在后边再加一个 break

循环语句

while

for

do while

while循环

由于我们发现生活中很多的实际的例子是:同一件事情我们需要完成很多次。
那我们怎么做呢?
C 语言中给我们引入了: while 语句,可以实现循环。
//while 语法结构
while ( 表达式 )
循环语句 ;

 例如:打印1-10的数字

#include <stdio.h>
int main ()
{
int i = 1 ;
while ( i <= 10 )
{
printf ( "%d " , i );
i = i + 1 ;
}
return 0 ;
}

while语句中break和continue的使用

break是跳出该循环

continue是不进行该次循环的下面步骤,重新开始下一次的循环

break while 循环中的作用:
其实在循环中只要遇到 break ,就停止后期的所有的循环,直接终止循环。
所以: while 中的 break 是用于 永久 终止循环的。

eg:

//break 代码实例
#include <stdio.h>
int main ()
{
int i = 1 ;
while ( i <= 10 )
{
if ( i == 5 )
break ;
printf("%d",i);
i=i+1;
}
return 0;
}
这里代码输出的结果是什么?
1 2 3 4
continue 是用于终止本次循环的,也就是本次循环中 continue 后边的代码不会再执行,
而是直接跳转到 while 语句的判断部分。进行下一次循环的入口判断

eg:

//continue 代码实例 2
#include <stdio.h>
int main ()
{
int i = 1 ;
while ( i <= 10 )
{
    i = i + 1 ;
if ( i == 5 )
continue ;
printf ( "%d " , i );
}
return 0 ;
}
这里代码输出的结果是什么
1 2 3 4 6 7 8 9 10

 for循环

语法

for ( 表达式 1 ; 表达式 2 ; 表达式 3 )
循环语句 ;
表达式 1
表达式 1 初始化部分 ,用于初始化循环变量的。
表达式 2
表达式 2 条件判断部分 ,用于判断循环时候终止。
表达式 3
表达式 3 调整部分 ,用于循环条件的调整。
eg:
打印1-10的数字
#include <stdio.h>
int main ()
{
int i = 0 ;
//for(i=1/* 初始化 */; i<=10/* 判断部分 */; i++/* 调整部分 */)
for ( i = 1 ; i <= 10 ; i ++ )
{
printf ( "%d " , i );
}
return 0 ;
}

 for和while比较

int i = 0 ;
// 实现相同的功能,使用 while
i = 1 ; // 初始化部分
while ( i <= 10 ) // 判断部分
{
printf ( "hehe\n" );
i = i + 1 ; // 调整部分
}
// 实现相同的功能,使用 while
for ( i = 1 ; i <= 10 ; i ++ )
{
printf ( "hehe\n" );
}
可以发现在 while 循环中依然存在循环的三个必须条件,但是由于风格的问题使得三个部分很可能偏离较
远,这样查找修改就不够集中和方便。所以,for 循环的风格更胜一筹; for 循环使用的频率也最高。

 重点

// 请问循环要循环多少次?
#include <stdio.h>
int main ()
{
int i = 0 ;
int k = 0 ;
for ( i = 0 , k = 0 ; k = 0 ; i ++ , k ++ )
        k ++ ;
return 0 ;
}
循环0次
//k=0直接是0,为假,直接不符合条件,跳出循环

do-while循环

语法

do
循环语句 ;
while ( 表达式 );

 

 do-while的break和continue

#include <stdio.h>
int main ()
{
int i = 1 ;
do
{
        if ( 5 == i )
            break ;
printf ( "%d " , i );
        i = i + 1 ;
} while ( i <= 10 );
   
return 0 ;
}
#include <stdio.h>
int main ()
{
int i = 1 ;
   
do
{
        if ( 5 == i )
            continue ;
printf ( "%d " , i );
        i = i + 1 ;
} while ( i <= 10 );
   
return 0 ;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值