C语言分支与循环

C 语言是一门结构化的程序化语言

1.顺序结构

2.选择结构

3.循环结构

# 什么是语句

C语言中有一个分号;隔开的就是一条语句。例如:

printf("hehe");

1+2;

# 分支语句

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

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

这就是选择!

## 语句

//单分支

if(表达式)

    语句;

   

if(表达式)

    语句;

else

    语句;

//多分支

if(表达式)

    语句;

else if(表达式)

    语句;

else

    语句;

解释一下:如果表达式的结果为真,则语句执行

在C语言中:0表示假,非0表示真。

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

#include<stdio.h>

int main()

{

    if(表达式)

    {

        语句列表1;

    }

    else

    {

        语句列表2;

    }

    return 0;

}

## 悬空else

代码:

#include<stdio.h>

int main()

{

    int a=0;

    int b=0;

    if(a==1)

        if(b==2)

            printf("hehe\n");

    else

        prinf("haha\n");

    return 0;

}

结果是打印haha。

//此类代码书写方式存在错误

## 书写方式的对比

//代码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更好,逻辑更加清晰,不容易出错。

## switch语句

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

比如:

    输入1,输出星期一

    输入2,输出星期二

    输入3,输出星期三

    输入4,输出星期四

    输入5,输出星期五

    输入6,输出星期六

    输入7,输出星期日

 switch(整型表达式)

 {

     语句项:

 }

 而语句项是什么呢?

 //是一些case语句

 case 整型常量表达式

    语句;

在switch语句中的break

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

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

编程好习惯

    在最后一个case语句的后面加上一条break语句。(之所以这么写是可以避免出现在以前的最后一个case语句后面忘了添加break语句)。

default子句

如果表达的值与所有case标签都匹配不上怎么办

其实也没什么,结构就是所有的语句都被跳过而已

程序并不会终止,也不会报错,因为这种情况在C中并不认为是错误。

default:

可以写在任何一个case标签可以出现的位置。

当switch表达式的值并不匹配所有case标签的值时,这个default子句后面的语句就会执行。

所以,每个switch语句中只能出现一个default语句。

但是它可以出现在语句列表中的任何一个位置。

编程好习惯:

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

# 循环语句

while

for

do while

## while循环

if(条件)

    语句:

当条件满足的情况下,if语句后的语句执行,否则不执行。但是这个语句只会执行一次。

但是我们发现生活中很多例子是:同一件事情我们需要完成很多次。

那我们应该怎么做?可以用while循环

//while 语法结构

while(条件)

{

    代码块

   

}

continue在while循环中的作用是:

continue适用于终止本次循环的,也就是说本次循环中continue后面的代码不会再执行,而是直接跳转到while语句的判断部分。进行下一次循环的入口判断。

break在while循环中的作用是:

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

### 示范代码

#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>



 

int main()

{

    int ret = 0;

    int ch = 0;

    char passward[20] = { 0 };

    printf("请输入密码:>");

    scanf("%s",passward);

    while ((ch = getchar()) != '\n')

    {

        ;

    }

    printf("请确认(Y/N):");

    ret = getchar();

    if (ret == 'Y') {

        printf("确认成功!");

    }

    else {

        printf("密码错误!");

    }

   

    return 0;

}


 

for循环

我们已经知道了while循环,但是我们为什么还要一个for循环呢?

for循环的语法:

for(表达式1:表达式2:表达式3)

    循环语句:

表达式1为初始化部分,用于初始化循环变量的。表达式2为条件判断部分,用于判断循环时候终止。

表达式3为调整部分,用于循环条件的调整。



 

可以发现在while循环中依然存在循环的三个必须条件,但是由于风格的问题使得三个部分很有可能偏离较远,这样

查找修改就不够集中和方便。所以,for循环的风格更胜一筹。for循环使用的频率也最高

break和continue在for循环中

我们发现在for循环中也可以出现break和continue,他们的意义和在while循环中是一样的。但是还是有些差异。


 

for语句的循环控制变量

一些建议:

1.不可在for循环体内修改循环变量,防止for循环失去控制

2.建议for语句的循环控制变量的取值采用“前闭后开区间”写法。


 

## do....while循环

do语句的语法:

    do

        循环语句;

    while(表达式);

   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值