网站模板建站教程视频,建站公司跑路了域名怎么办,wordpress 快速建站,c2c模式的典型代表#x1f4da;博客主页#xff1a;爱敲代码的小杨.
✨专栏#xff1a;《Java SE语法》 | 《数据结构与算法》 | 《C生万物》
❤️感谢大家点赞#x1f44d;#x1f3fb;收藏⭐评论✍#x1f3fb;#xff0c;您的三连就是我持续更新的动力❤️
#x1f64f;小杨水平有…
博客主页爱敲代码的小杨.
✨专栏《Java SE语法》 | 《数据结构与算法》 | 《C生万物》
❤️感谢大家点赞收藏⭐评论✍您的三连就是我持续更新的动力❤️
小杨水平有限欢迎各位大佬指点相互学习进步 文章目录 1、if语句1.1 if语句的语法格式1.2 if语句的执行流程1.3 if ...else 语句1.4 级联式if语句1.5 “悬空else” 的问题 2、switch语句3、while循环3.1 while语句的格式3.2 while语句的执行流程3.3 while语句的实践 4、for循环4.1 for语句的格式4.2 for语句的执行流程4.3 for语句的实践4.4 for语句和while语句的对比 5、do...while循环5.1 do...while语句的格式5.2 do...while语句的执行流程5.3 do...while语句的实践 6、break和continue7、goto语句 1、if语句
if 语句允许程序通过测试表达式的值从两种选项中选择一种。
1.1 if语句的语法格式
if(表达式)语句表达式成立为真则语句执行表达式不成立为假则语句不执行。 在C语言中0表示假非0表示真。也就是表达式的结果如果是0则语句不执行表达式的结果如果不是0则语句执行
1.2 if语句的执行流程 1.3 if …else 语句
语法格式
if(表达式)语句;
else语句;1.4 级联式if语句
编程时常常需要判断一系列的条件一旦其中某一个条件为真就立刻停止。“级联式”if语句常常时编写这类系列判定的最好方法。 例如下面这个级联式if语句用来判定n是小于0、等于0、大于0
if(n0)printf(%d小于0\n,n);
elseif(n0)printf(%d等于0\n,n);elseprintf(%d大于0\n,n);虽然第二个 if 语句式嵌套在第一个if语句内部的。通常不会对他对进行缩进而是把每个else都与最初的 if 对齐
if(n0)printf(%d小于0\n,n);
else if(n0)printf(%d等于0\n,n);
elseprintf(%d大于0\n,n);级联式 if 语句独特的书写形式
if(表达式)语句
else if(表达式)语句
else if(表达式)语句
...
else语句1.5 “悬空else” 的问题
当 if 语句嵌套时千万要当心著名的“悬空else”的问题。 思考下面这个例子
#include stdio.hint main()
{int a 0;int b 2;if(a 1)if(b 2)printf(hehe\n);elseprintf(haha\n);return 0;
}程序运行结果是什么呢 很多人认为 a 0,不等于1程序执行else子句打印haha但是你运行程序的时候输出结果什么都没有打印。 这就是悬空else的问题如果有多个 if与 else 的时候else 总是跟最近的未配对的 if 匹配。 如果代码改成下面这样更容易理解了
#include stdio.hint main()
{int a 0;int b 2;if (a 1){if (b 2)printf(hehe\n);elseprintf(haha\n);}return 0;
}或者如果我们希望else确定和第一个if匹配可以把代码改成这样。
#include stdio.hint main()
{int a 0;int b 2;if (a 1){if (b 2)printf(hehe\n);}else{printf(haha\n);}return 0;
}只要带上适当的大括号代码的逻辑就会更加清晰所以大家以后子啊写代码的时候要注意括号的使用让代码的可读性更高。 注if 和 else 语句默认都只控制一条语句想要控制多条语句需要加上{}构成复合语句。 2、switch语句
除了 if 语句外C语言还提供了 switch 语句来实现分支结构 switch 语句是一种特殊形式的 if...else 结构用于判断条件有多个结果的情况。它把多重的 else if 改成更易用、可读性更好的形式。 switch 的语法格式
switch(表达式)
{case 常量表达式:语句case 常量表达式:语句 ...case 常量表达式:语句 default :语句
}switch 的组成部分
控制表达式switch 后面必须跟着圆括号括起来的整形表达式。C语言把字符当成整数来处理因此在 switch 语句中可以对字符进行判定。但是这不适用于浮点数和字符串。分支标号每个分支的开头都有一个标号格式如下
case 常量表达式 常量表达式很像普通的表达式只是不能包含变量和函数调用。因此5是常量表达式5 10 也是常量表达式但 n 10 不是常量表达式除非n是表示常量的宏。分支标号中常量表达式的值必须是整数字符也可以 语句每个分支标号的后边可以任意数量的语句并且不需要用花括号把这些语句括起来。每组语句的最后一条通常是break 语句。
C语言不允许有重复的分支标号但对分支的顺序没有要求特别是 default 分支不一定要放置在最后。 default 的作用 switch 语句不要求一定有 default 分支。如果 default 不存在而且控制表达式的值和任何一个分支标号都不匹配的话控制会直接传给 switch 语句后面的语句。
3、while循环
循环是重复执行其他语句循环体的一种语句。
3.1 while语句的格式
while(表达式)语句3.2 while语句的执行流程 首先执行判断表达式表达式的值为0循环直接结束表达式的值不为0则执行循环语句语句执行完后再继续判断是否进行下一次判断。
3.3 while语句的实践
练习在屏幕上打印1~10的值 代码
#includestdio.hint main()
{int i 1;while (i 10){printf(%d , i);i;}return 0;
}运行结果
4、for循环
4.1 for语句的格式
for(声明或者表达式1;表达式2;表达式3)语句表达式1用于循环变量的初始化 表达式2用于循环结束条件的判断 表达式3用于循环变量的调整
4.2 for语句的执行流程 首先执行表达式1初始化循环变量接下来就是执行表达式2的判断部分表达式2的结果如果0则循环结束表达式2的结果如果!0则执行训话语句循环语句执行完后再去执行表达式3调整循环变量然后再去表达式2的地方执行判断表达式2的结果是否为0决定循环是否继续。 整个循环的过程中表达式1初始化部分只被执行1次剩下的就是表达式2、循环语句、表达式3在循环
4.3 for语句的实践
练习在屏幕上打印1~10的值 代码
#includestdio.hint main()
{int i 0;for (i 1; i 10; i){printf(%d , i);}return 0;
}运行结果
4.4 for语句和while语句的对比 5、do…while循环
5.1 do…while语句的格式
do
{语句
}while(表达式);while 和 for 这两种循环都是先判断条件如果满足就进入循环执行循环语句如果不满足就跳出循环 而do...while 循环则是先直接进入循环体执行循环鱼护然后在执行 while 后的判断表达式表达式为真就会进行下一次表达式为假则不再继续循环。
5.2 do…while语句的执行流程 在do...while 循环中先执行图上的“语句”执行完语句在去执行“判断表达式”在判断表达式的结果是!0则继续循环执行循环判断表达式的结果0则循环结束。 所以在do...while 语句中循环体是至少执行一次的这是do...while 循环比较特殊的地方。
5.3 do…while语句的实践
练习在屏幕上打印1~10的值 代码
#includestdio.hint main()
{int i 1;do{printf(%d , i);i;} while (i10);return 0;
}运行结果
6、break和continue
在循环执行的过程中如果某些状况发生的时候需要提前终止循环。
break 的作用是用于永久的终止循环只要break 被执行直接就会跳出循环继续往后执行。continue 的作用是跳出本次循环 continue 后边的代码
7、goto语句
C语言提供了一种非常特别的语法就是goto 语句和跳转标号goto 语句可以实现在同一个函数内跳转到设置好的标号处。 标号只是放置在语句开始处的标识符
标识符: 语句goto语句格式
goto 标识符;例如
#includestdio.hint main()
{printf(hehe\n);goto next;printf(haha\n);next:printf(跳过haha的打印\n);return 0;
}运行结果 goto 语句如果使用的不当就会导致在函数内部随意乱跳转打乱程序的执行流程所以能不用尽量不去使用但是goto 语句也不是一无是处在多层循环的代码中如果想快速跳出使用goto 就非常的方便了。
for(...)
{for(...){for(...){if(1)goto next;}}
}next://...本来for 循环也使用break 跳出但是break 只能跳出一次循环这里就要用3个break 才可以跳出循环所以这种情况使用goto语句就更快捷。