我是靠谱客的博主 妩媚钢笔,最近开发中收集的这篇文章主要介绍破开C语言暗夜的第三道光——控制语句控制语句一、分支语句二、循环语句三、转向语句,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

控制语句

  • 控制语句
  • 一、分支语句
    • if语句
    • switch语句
  • 二、循环语句
    • while循环
    • for循环
    • do...while循环
  • 三、转向语句
    • break
    • continue
    • return
    • goto语句

控制语句

控制语句是用于控制程序的执行流程,以实现程序的各种结构方式的语句。(C语言支持三种结构:顺序结构、选择结构和循环结构)

C语言有九种控制语句,可分为以下三类:
1、条件判断语句(分支语句):if语句,switch语句。
2、循环语句:while语句,for语句,do…while语句。
3、转向语句:break;continue;return;goto语句。

一、分支语句

  • if语句

if语句的语法结构

    //单分支—单代码块
	if (表达式)
		语句;

	//单分支—双代码块
	if (表达式)
		语句1;
	else
		语句2;

	//多分支
	if (表达式1)
		语句1;
	else if (表达式2)
		语句2;
	……
	else if (表达式n)
		语句n;
	else
		语句;

else的匹配:没有大括号的嵌套分隔时,else与离它最近的if相匹配。

:如果表达式为真,语句执行;表达式为假,则不执行。
  0表示假,非0表示真

  • switch语句

switch语句常用于多分支的情况,switch语句允许嵌套使用。

switch语句的语法结构

	switch (整型表达式)  // !! 整型
	{
		语句项;
	}

其中的语句项是一些case语句和default语句

	// case语句
	
	case 整型常量表达式:  // !! 整型,常量
		语句;
		break;  
		
   //除非有意为之,否则每一条case语句写完下面都要加上一个break;

default子句

  default:
      语句;

当表达式的值与所有case标签的值都不匹配时,用一个default子句来做提示,让整个switch语句的表达更加完整。

default子句可放在任何一个case可以出现的位置,一般建议放在最后。

二、循环语句

  • while循环

while的语法结构

    while (表达式)
    {
        循环语句;
    }
  • for循环

for循环的语法结构

	 // 初始化  条件判断  循环变量调整
	for (表达式1; 表达式2; 表达式3)
	{
		循环语句;
	}

for循环条件中的3个表达式均可省略,但没有特殊用处或没有把握时不建议省略。

补充,用for还是while?

  1. 循环体执行的代码相同的条件下,for循环的效率高于while循环

C源代码:

int main()
{
	while (1);
	for (;;);

	return 0;
}

对应的汇编代码:

	while (1);
00007FF68C2F176B  xor         eax,eax  
00007FF68C2F176D  cmp         eax,1  
00007FF68C2F1770  je          main+24h (07FF68C2F1774h)  
00007FF68C2F1772  jmp         main+1Bh (07FF68C2F176Bh)  
	for (;;);
00007FF68C2F1774  jmp         main+24h (07FF68C2F1774h)  

汇编代码解析:
  可以看到,“while (1);”语句,需要4条汇编指令:立即数、与操作、比较、跳转;
  而“for (;;);”语句,只需要一条汇编指令。

  1. C99标准下,for循环的循环变量可在初始化部分同时定义和初始化
    for (int i = 0;;);

这样写for循环结束后 i 占用的栈内存就会被释放,可节约内存,while则不行。

  1. while循环的调整部分在循环体内部,容易一个不小心改动了循环变量导致循环错误。

综上,在能使用for循环的情况下建议使用for循环代替while循环。

  • do…while循环

do…while循环的使用场景:循环至少循环一次。

do语句的语法结构

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

三、转向语句

  • break

break的作用:跳出直接所在的那层循环。

若为一层循环直接跳出循环, 若为嵌套循环,以2层为例:在内层循环遇到break是跳到外层循环,在外层循环则跳出循环体。

  • continue

continue的作用:跳过所在循环continue下面的代码,直接回到所在循环的循环条件部分。

:在循环体内才能使用break和continue。

  • return

return的作用:直接跳出所在的函数体。

  • goto语句

使用goto语句可实现代码执行顺序的跳转。
可用于一步跳出深度嵌套和实现一些简单的循环。

	for(...)
	{
		for (...) 
		{ 
			for (...) 
			{ 
				if (disaster)
					goto error;  //跳出深度嵌套
			}
		}
		……
  //error是标记跳转位置的标号,这个标号名是人为命名的
  //要与上面goto后面的标号保持一致
error:		
    if (disaster)   // 处理错误情况

注意:goto语句只能在同一个函数内部跳转,不能跨函数跳转。

最后

以上就是妩媚钢笔为你收集整理的破开C语言暗夜的第三道光——控制语句控制语句一、分支语句二、循环语句三、转向语句的全部内容,希望文章能够帮你解决破开C语言暗夜的第三道光——控制语句控制语句一、分支语句二、循环语句三、转向语句所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部