C语言之三种基本结构

举报
yd_221104950 发表于 2020/12/02 23:03:17 2020/12/02
【摘要】 C语言程序的三种基本结构:顺序结构、选择结构(if语句)、循环结构(for、while、do-while)。 顺序结构 从第一条语句执行到最后一条语句,按顺序的执行。 示例: #include <stdio.h> #include <math.h> int main(int argc,char* argv){ double x,y,sum...

C语言程序的三种基本结构:顺序结构、选择结构(if语句)、循环结构(for、while、do-while)。

顺序结构

从第一条语句执行到最后一条语句,按顺序的执行。
在这里插入图片描述示例:

#include <stdio.h>
#include <math.h>

int main(int argc,char* argv){ double x,y,sum; scanf("%lf%lf",&x,&y); sum = x*y; printf("%.2lf\n",sum); return 0;
}


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

选择结构(switch、if语句)

在这里插入图片描述
选择结构分为 if语句 switch(开关)语句。

C 语言中 if 语句的语法:

(1)if 语句
一个 if 语句 由一个布尔表达式后跟一个或多个语句组成。

if(boolean_expression){ /* 如果布尔表达式为真将执行的语句 */
}

  
 
  • 1
  • 2
  • 3

(2) if…else 语句
一个 if 语句 后可跟一个可选的 else 语句,else 语句在布尔表达式为 false 时执行。

if(boolean_expression){ /* 如果布尔表达式为真将执行的语句 */
}else{ /* 如果布尔表达式为假将执行的语句 */
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

(3)嵌套 if 语句
可以在一个 if 或 else if 语句内使用另一个 if 或 else if 语句。

if( boolean_expression 1){ /* 当布尔表达式 1 为真时执行 */ if(boolean_expression 2){ /* 当布尔表达式 2 为真时执行 */ }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

(4)if…else if…else 语句
一个 if 语句后可跟一个可选的 else if…else 语句,这可用于测试多种条件。
当使用 if…else if…else 语句时,以下几点需要注意:

  • 一个 if 后可跟零个或一个 else,else 必须在所有 else if 之后。
  • 一个 if 后可跟零个或多个 else if,else if 必须在 else 之前。
  • 一旦某个 else if 匹配成功,其他的 else if 或 else 将不会被测试。
if(boolean_expression 1){ /* 当布尔表达式 1 为真时执行 */
}else if( boolean_expression 2){ /* 当布尔表达式 2 为真时执行 */
}else { /* 当上面条件都不为真时执行 */
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

switch 语句

一个 switch 语句允许测试一个变量等于多个值时的情况。每个值称为一个 case,且被测试的变量会对每个 switch case 进行检查。


switch(expression){ case constant-expression  : statement(s); break; /* 可选的 */ case constant-expression  : statement(s); break; /* 可选的 */ /* 您可以有任意数量的 case 语句 */ default : /* 可选的 */ statement(s);
}


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

switch 语句必须遵循下面的规则:

  • switch 语句中的 expression 是一个常量表达式,必须是一个整型或枚举类型。
  • 在一个 switch 中可以有任意数量的 case 语句。每个 case 后跟一个要比较的值和一个冒号。
  • case 的 constant-expression 必须与 switch 中的变量具有相同的数据类型,且必须是一个常量或字面量。
  • 当被测试的变量等于 case 中的常量时,case 后跟的语句将被执行,直到遇到 break 语句为止。
  • 当遇到 break 语句时,switch 终止,控制流将跳转到 switch 语句后的下一行。
  • 不是每一个 case 都需要包含 break。如果 case 语句不包含 break,控制流将会 继续 后续的 case,直到遇到 break 为止。
  • 一个 switch 语句可以有一个可选的 default case,出现在 switch 的结尾。default case 可用于在上面所有 case 都不为真时执行一个任务。default case 中的 break 语句不是必需的。

嵌套 switch 语句

switch(ch1) { case 'A': printf("这个 A 是外部 switch 的一部分" ); switch(ch2) { case 'A': printf("这个 A 是内部 switch 的一部分" ); break; case 'B': /* 内部 B case 代码 */ } break; case 'B': /* 外部 B case 代码 */
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

示例:

#include <stdio.h>
#include <math.h>

int main(int argc,char* argv){ int a = 10; // if if(a > 0){ printf("a is bigger than 10"); } // if -- else if( a == 11){ printf("a is bigger than 10"); }else{ printf("a is smaller than 10"); } // if -- else if--else if(a > 1){ printf("a is bigger than 0"); }else if(a > 2){ printf("a is bigger than 2"); }else{ printf("a is smaller"); } switch(a){ case 1: printf("1"); break; case 2: printf("2"); break; default: printf("10"); } return 0;
}


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39

循环结构(for、while、do-while)

有两种结构:(1)当型;(2)直到型。循环是可以嵌套的。

  • 当型
    在这里插入图片描述1.while 循环
    只要给定的条件为真,C 语言中的 while 循环语句会重复执行一个目标语句。
while(condition)
{ statement(s);
}

  
 
  • 1
  • 2
  • 3
  • 4

2.for 循环
for 循环允许您编写一个执行指定次数的循环控制结构。

for ( init; condition; increment ){ statement(s);
}

  
 
  • 1
  • 2
  • 3
  • 直到型
    在这里插入图片描述
    do…while 循环
    在 C 语言中,do…while 循环是在循环的尾部检查它的条件。do…while 循环与 while 循环类似,但是 do…while 循环会确保至少执行一次循环。
do{ statement(s);
}while( condition );

  
 
  • 1
  • 2
  • 3

示例:

#include <stdio.h>
#include <math.h>

int main(int argc,char* argv){ int a = 10; /* while 循环执行 */ while( a < 20 ){ printf("a 的值: %d\n", a); a++; } /* for 循环执行 */ for( int a = 10; a < 20; a = a + 1 ){ printf("a 的值: %d\n", a); } /* do 循环执行 */ do{ printf("a 的值: %d\n", a); a = a + 1; }while( a < 20 ); return 0;
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

谢谢阅读

文章来源: blog.csdn.net,作者:WongKyunban,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_40763897/article/details/103643158

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。