C语言——分支语言和循环语句
流程控制语句:用来控制程序中各语句执行顺序的语句。 C语言中由一个分号(:)隔开的就是一条语句。
分支语句
·if
·switch
循环语句
·while
·for
·do while
分支语句
if语句
if语句的结构:
if(表达式)
语句;if(表达式)
语句1; else(表达式)
语句2;//多分支 if(表达式1)
语句1; else if(表达式2)
语句2; else
语句3; 注意:如果表达式的结果为真
,则语句1执行,否则表达2执行。
C语言中0表示假,非0表示真。
代码演示:
#include<stdio.h> int main(){ int coding=0; printf("你会好好学习吗?(选择1or2):"); scanf("%d",&coding); if(coding==1){ printf(“坚持就是胜利!\n”); } else{ printf("废物!\n"); } return 0; }
注意:适当使用{}可以使代码的逻辑更加清楚。
switch语句
switch语句也是一种分支语句,常用于分支情况。
比如:
输入1,输出星期一;
输入2,输出星期二;
输入3,输出星期三;
输入4,输出星期四;
输入5,输出星期五;
输入6,输出星期六;
输入7,输出星期七;
switch语句的结构
switch(整型表达式)
{
case 整型常量表达;
语句;
}
#include<stdio.h> int main(){ int day=0; switch(day) { case 1: printf("星期一\n"); break; case 2: printf("星期二\n"); break; case 3: printf("星期三\n break; case 4: printf("星期四\n"); break; case 5: printf("星期五\n"); break; case 6: printf("星期六\n"); break; case 7: printf("星期天\n"); break; } }
break语句的实际效果是把语句列表划分为不同的部分。在最后一个 case 语句的后面加上一条 break语句。 (之所以这么写是可以避免出现在以前的最后一个 case 语句后面忘了添加 break语句)。
default子句
如果表达的值域所有的case标签的值都不匹配那么所有的语句都会被跳过。 程序并不会终止,也不会报错,因为这种情况在C中并不认为适合错误。 但是,如果你并不想忽略不匹配所有标签 的表达式的值时可以在语句列表中增加一条default子句,把下面的标签 default: 写在任何 一个case标签可以出现的位置。
当 switch表达式的值并不匹配所有case标签的值时,这个default子句后面的语句就会执行。所以,每个switch语句中只能出现一条default子句。 但是它可以出现在语句列表的任何位 置,而且语句流会像贯穿一个case标签一样贯穿default子句。
循环语句
while循环
我们已经掌握了,if语句:
if(条件) 语句;
当条件满足的情况下,if语句后的语句执行,否则不执行。但是这个语句只会执行一次。
但是我们发现生活中很多的实际的例子是:同一件事情我们需要完成很多次。 C语言中给我们引入了:while语句,可以实现循环。
while(表达式) 循环语句;
比如我们实现:
用while循环在屏幕上打印1-10的字。
#include<stdio.h> int main(){ int i=1; while(i<=10){ printf("%d ",i); i++; } return 0; }
while语句中的break和continue
break介绍
#include<stdio.h> int main(){ int i=1; while(i<=10){ if(i==5) break; printf("%d ",i); i++; } return 0; }
输出结果是:1 2 3 4
总结:在while循环中只要碰到break,就停止后期所有的循环,直接终止循环,所以break是用对于永久终止循环的。
countinue介绍:
#include<stdio.h> int main(){ int i=1; while(i<=10){ i++ if(i==5) continue; printf("%d ",i); } return 0; }
输出结果是:2 3 4 6 7 8 9 10
总结:在while循环中continue的作用就是终止本次循环,就是本次循环中continue后面的代码不再执行,直接跳转到while语句的判断部分进行下一次循环。
for循环
语法
for(表达式1;表达式2;表达式3) 循环语句
表达式1为初始化部分,用于初始化循环变量;表达式2为条件判断部分,用于判断循环终止时候;表达式3为调整部分,用于循环部分的调整。
比如我们实现:
用for循环在屏幕上打印1-10的字。
#include<stdio.h> int main(){ int i=0; for(i=0;i<=10;i++){ printf("%d ",i); } return 0; }
可以发现在while和for循环中都存在循环的三个必须条件,但是由于风格的问题在while循环中使得三个部分很可能偏离较远,这样查找修改就不够集中和方便。所以,for循环的风格更胜一筹。for循环使用的频率也最高。
在for循环中也可以出现break和continue,他们的意义和在while循环中是一样的。
一些建议: 1. 不可在for 循环体内修改循环变量,防止for 循环失去控制。 2. 建议for语句的循环控制变量的取值采用“前闭后开区间”写法。
int i = 0; //前闭后开的写法 for(i=0; i<10; i++) {} //两边都是闭区间 for(i=0; i<=9; i++) {}
一些for循环的变种
#include <stdio.h> int main(){ //变种1 for( ; ; ){ printf("hehe\n"); } //变种2 int x, y; for(x = 0, y = 0; x<2 && y<5; ++x, y++){ printf("hehe\n"); } return 0; }
do…while()循环
语法:
do 循环语句; while(表达式);语法:
循环至少执行一次,使用的场景有限,所以不是经常使用
#include <stdio.h> int main(){ int i = 10; do{ printf("%d\n", i); }while(i<10); return 0; }
goto语句
C语言中提供了可以随意滥用的goto语句和标记跳转的标号。
从理论上goto语句是没有必要的,实践中没有goto语句也可以很容易的写出代码。
但是某些场合下goto语句还是用得着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过程,例如一次
跳出两层或多层循环。
这种情况使用break是达不到目的的。它只能从最内层循环退出到上一层的循环。
下面是使用goto语句的一个例子:
一个关机程序
#include <stdio.h> int main() { char input[10] ={0}; system("shutdown -s -t 60"); again: printf("电脑将在1分钟内关机,如果输入:我是猪,就取消关机!\n请输入:>"); scanf("%s", input); if(0 == strcmp(input, "我是猪")) { system("shutdown -a"); } else { goto again; } return 0; }
- 黑马程序员———C语言 分支语句和循环语句
- [黑马IOS自学第三篇]C语言条件分支,while循环语句等
- C语言的分支语句和循环结构知识点
- 程序员成长之旅——C语言分支循环语句(初阶)
- c语言基础-分支语句和循环语句
- 第02章 CORE C++_控制语句_选择_循环_分支_跳出_函数_声明_形参_返回值_重载_递归
- C语言第三节-顺序,分支,循环
- c++中的结构化语句 判断语句if 分支语句switch 循环语句 while 和 do while 循环语句for的使用
- 20161215C语言基础13_分支语句
- 使用JavaScript语言的循环语句和document.write()语句在网页中输出4行三列的表格
- 【Python】Learn Python the hard way, ex35 通过一个简单游戏,练习循环和分支语句
- C语言基础用基本的循环语句打印实心和空心菱形、九九乘法表
- [黑马程序员]09[C语言]循环控制语句部分学习笔记总结
- C语言基础-----分支语句if esle switch case
- c语言:不用if,else语句,也不用循环条件等,输入一个字符,判断是否为大写字母
- Poedu_C语言_Lesson20_20160923_分支语句
- “尘”-浅谈C语言中的循环语句-9
- C语言:switch语句实现多分支语句
- 《C语言及程序设计》程序阅读——三种循环语句
- C语言学习10(循环结构:do-while语句)