c语言分支与循环(控制语句)

目录

一.语句与结构

1.语句

2.控制语句

(1).条件判断语句(分支语句)

(2).循环执行语句

(3).转向语句

3.基本结构

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

1.if语句

(1).语法结构

(2).多条语句

(3).悬空else

(4)其他

2.switch语句

(1).语法结构

(2).break的使用

(3).其他

三.循环语句

1.while循环语句

(1).语法结构

(2).break与continue

(3).其他

2.for循环语句

(1).语法结构

(2).表达式的省略

(3).多变量

(4).常见问题

(5).其他

3.do while循环语句

(1).语法结构


一.语句与结构


1.语句

  • 表达式语句
  • 函数调用语句
  • 控制语句
  • 符合语句
  • 空语句

2.控制语句

用于控制程序的执行流程,以实现程序的各种结构方式

(1).条件判断语句(分支语句)

if语句、switch语句

(2).循环执行语句

do while语句、while语句、for语句

(3).转向语句

break语句、goto语句、continue语句、return 语句


3.基本结构

  • 顺序结构
  • 选择结构
  • 循环结构



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


1.if语句

(1).语法结构

单分支

if(表达式)
    语句;

双分支

if(表达式1)
    语句;
else
    语句;

多分支

if(表达式1)
    语句;
else if(表达式2)
    语句;
......
else if(表达式n)
    语句;
else
    语句;

表达式为真,执行对应语句

(2).多条语句

当需要多条语句时,使用

 {
      语句1;
      ......
      语句n;
 }

一对{}就是一个代码块

(3).悬空else

      else与其最近的if匹配

        例如:

#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;
}



//结果将为hehe

(4)其他

  • 单条if语句只有一条分支的语句被执行
  • if语句可以嵌套使用
  • 整个if语句算作一条语句


2.switch语句

(1).语法结构

switch(整形表达式)
{
case 1:
    语句;
    break;
......
case (整形常量表达式):
    语句;
    break;
default:    
    语句;
    break;
}

当整形表达式为n时,若存在case n,则执行,否则执行default

(2).break的使用

  • break的作用是在对应位置跳出循环
  • 当case内不含break时,将持续向下执行其他case内的语句,直到遇到break

       例如

switch(day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
    printf("工作日");
    break;
case 6:
case 7:
    printf("休息日");
    break;
default:
}

(3).其他

  • default可以放在switch语句内的任何位置(建议放置在最后)
  • case可以与if嵌套使用

  • switch允许嵌套使用



三.循环语句


1.while循环语句

(1).语法结构

while(表达式)

        循环语句;

expr:表达式        stmt:循环语句

(2).break与continue

int i=1;
while(i<=10)
{
    printf("%d ",i);
    i++;
}
//打印1~10

break用于完全结束一个循环,跳出循环体。

不管是哪种循环,一旦在循环体中遇到break,系统将完全结束循环,开始执行循环之后的代码。

int i=1;
while(i<=10)
{
    if(i==5)
        break;
    printf("%d ",i);
    i++;
}
//打印1~4

continue的功能和break有点类似,区别是continue只是中止本次循环,接着开始下一次循环。

可以理解为continue是跳过当次循环中剩下的语句,执行下一次循环。(continue只能在循环语句中使用)

int i=1;
while(i<=10)
{
    if(i==5)
        continue;
    printf("%d ",i);
    i++;
}
打印1~4后死循环

(3).其他

while(1)中“1”恒为真,不断执行循环,常与break一起使用


2.for循环语句

(1).语法结构

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

        循环语句;

表达式1为初始化部分,用于初始化循环变量的。

表达式2为条件判断部分,用于判断循环时候终止。

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

等同于以下while循环语句

表达式1;

while(表达式2)

{

        循环语句;

        表达式3;

}

(2).表达式的省略

   for循环中初始化、条件判断、调整都可省略(不熟练建议不)。若条件判断被省略,则恒为真

(死循环)。

(3).多变量

表达式中可以含有多个变量,表达式1与表达式3中使用“,”隔开,表达式2中根据逻辑关系选择

(4).常见问题

int i=0;
int j=0;
int count=0;
for(;i<3;i++)
{
    for(;j<3;j++)
    {
        count++;
    }
}

//由于j只初始化一次,j的for循环在第一次后使j初始值为3,导致count最终为3

(5).其他

  • 优点:三个表达式在一起, 便于调整。
  • 初始化表达式只执行一次。
  • break跳出循环,不进行本次调整

  • 不可在for循环中改变循环变量,防止失控。

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


3.do while循环语句

(1).语法结构

do

        循环语句;

while(表达式);

注意while(表达式后有“;”)

  • 16
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

finish_speech

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值