C语言教程(七)语句

C语言编写的程序都是由一条条语句组成的,程序默认是按照顺序执行,但我们可以通过语句来改变程序的执行流程,语句大致分为以下几类:

  • 条件判断语句,if语句族(if、else if、else)
  • 选择语句,switch语句
  • 循环语句,while语句、do while语句、for语句
  • break语句
  • continue语句
  • goto语句
  • 空语句

1. if语句族

1.1 if语句

if语句用于条件判断,if语句是由if关键字、表达式expression、statement语句集组成,当满足一定的条件时,就会执行if代码块中的代码,它的表现形式为:

if(expression) 
   statement
//或者
if(expression){
   statement
}

如果expression满足条件,即为真时,就执行后面的statement语句;当只有一条statement语句的时候,大括号可以省略不写。

int a = 5;
if(a == 5) 
   printf("a的值为%d\n",a);//a == 5满足条件,所以调用printf()函数

如果有多条语句的时候,就要加上大括号组成复合语句。

int a = 5;
if(a == 5){  //执行多条语句,需要加上大括号
  a = 3;
  printf("a的值为%d\n",a);//a == 5符合条件,进入if代码块执行printf()函数
}

1.2 else if语句

else if语句是if语句的分支,实现多重判断,它只能和if语句配合使用,不能单独使用,表现形式:

if(expression1)
  statement
else if(expression2)
  statement
else if(expression3)
  statement

在多重判断的情况下,从最开始的表达式expression1开始匹配,哪个else if对应的表达式expression符合条件,就执行哪个else if里的语句或代码块,最好不要使用三个以上else if,会影响效率。

int a = 5;
if(a == 2)
  printf("a的值为%d\n",a);
else if(a == 3)
  printf("a的值为%d\n",a);
else if(a == 5)
  printf("a的值为%d\n",a);//满足条件,输出

1.3 else语句

else语句也是和if搭配使用的,当if语句和else if条件都不满足时,会进入到else的代码块。

//形式1
if(expression) 
  statement
else 
  statement
//形式2
if(expression1)
  statement
else if(expression2)
  statement
else if(expression3)
  statement
else
  statement

if语句嵌套使用时,else与最近的if相匹配,并且建议加上大括号,确保if与对应的else匹配,以免造成混乱。

int a = 5;
if(a == 2)
  printf("a的值为%d\n",a);
else if(a == 3)
  printf("a的值为%d\n",a);
else if(a == 4)
  printf("a的值为%d\n",a);
else
  printf("a的值为%d\n",a);//上面都不满足条件,执行else里的代码

//嵌套使用if语句
int b = 10;
if(a == 5){
  if(b == 10){
    printf("b的值为%d\n",b);//输出b的值为10
  }
}else{
   printf("a的值为%d\n",a);
}

2. switch语句

switch语句是选择类语句,和case、default语句配合使用,与if…else语句相似,如果有多个判断条件(3个以上),建议使用swtich语句代替if…else语句,表现形式:

//有break
switch(expression){
  case v1:
    statement
    break;
  case v2:
    statement
    break;
  case v3:
    statement
    break;
  default:
    statement
}

switch语句根据expression的结果不同,执行对应的case分支,然后执行break语句跳出switch语句块,当所有的case都不匹配,就执行default里的语句。

int value = 2;
switch(value){
   case 1:
     printf("1");
     break;
   case 2:
     printf("2");//输出2
     break;
   case 3:
     printf("3");
     break;
   default:
     printf("0");
}

如果case后面不跟break,则会执行下一个case或default语句,这就是case穿透。

int value = 2;
switch(value){
   case 1:
   case 2:
     printf("2");//输出2
     break;
   case 3:
     printf("3");
     break;
   default:
     printf("0");
}

3. 循环语句

3.1 while语句

while语句用于实现循环,当条件满足时,就会进入循环体内并反复执行,直到条件不满足为止:

while(expression)
   statement

如果表达式expression满足条件,就会执行statement,还需要一个循环变量,否则会进入死循环,或者使用break语句跳出循环

int a = 5;
while(a <= 10){
  a++;//循环变量,当a>10时,则不符合条件,跳出循环
}

3.2 do while语句

do while语句是while的一种,它和while语句的区别就是,先执行一遍循环体,再判断条件是否满足:

do statement
while(expression)

do while先执行一遍statement,再进入while中判断expression是否满足条件,其他的都和while语句一样,如果有多个statement,则需要放到大括号里:

int a = 5;
do{
  a++;
}while(a <= 10);//先执行a++,再进行while判断

3.3 for语句

for是另一种循环语句,也是最常用的循环语句,通常用于对循环次数明确的情景。for循环的条件由三个部分组成:

  • init:初始化变量,首次进入循环的时候调用一次
  • condition:条件表达式,和while的判断一样,为真则执行循环体
  • ctrl:控制变量表达式,每次执行完循环体后执行该表达式
for (init;condition;ctrl)
  statement;

for (init;condition;ctrl){//多个语句
  statement;
  statement;
  ...
}

下面是一个示例:

for(int i = 0;i <= 10;i++){
  printf("i的值为%d\n",i);//循环输出i的值,直到i > 10时跳出循环
}

for循环的三个条件表达式部分不是必须的,可以全部为空,也可以省略任何一个,全部为空的话形成无限循环,但分号不能省略:

for(;;){
  printf("无限循环\n");
}

4. break语句

break语句主要用于跳出循环和switch语句中结束case分支。其中,如果是嵌套循环的话,只能跳出当前的循环,不能跳出多个循环,也不能用于条件判断语句(if语句)。

for(int i = 0;i <= 10;i++){
  if(i == 5){
    break;//当i等于5的时候跳出循环
  }
  printf("i的值为%d\n",i);
}

5. continue语句

continue语句用于终止当前循环,循环体后面的内容就不会再执行了,接着进入下一轮循环:

for(int i = 0;i <= 10;i++){
  if(i == 5){
    continue;//当i等于5的时候进入下一轮循环,后面的printf()函数不再执行
  }
  printf("i的值为%d\n",i);
}

6. goto语句

goto语句用于无条件地跳转到指定的标号,也可以用于跳过代码的执行或者不受限制地退出多重循环,一般形式就是goto label:

int a = 5;
i:a = 10;
if(a == 5){
   goto i;//a等于5时,跳转到标号i,执行a = 10的操作
}

7. 空语句

空语句是一个不执行任何操作的语句,只有一个分号“;”,常用作占位符。

有错误的地方、需要补充的知识欢迎评论区指正

觉得有帮助可以赞赏本文哦~万分感谢!
文章:C语言教程(七)语句
作者:沛旗
链接:https://www.peiqiblog.com/article/1341/
版权声明::本博客站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0协议
转载请注明文章地址及作者哦~
暂无评论

发送评论(禁止发表一切违反法律法规的敏感言论) 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇