黑马程序员——C语言基础04—程序控制
来源:互联网 发布:微商城分销php开发手册 编辑:程序博客网 时间:2024/05/17 23:59
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
一、 程序控制
顺序结构:默认的流程结构,按照书写顺序执行每一条语句。
选择结构对给定的条件进行判断,再根据判断结果来决定执行哪一段代码。有if语句和switch语句。
循环结构再给定条件成立的情况下,反复执行某一段代码。
有while语句和for语句。
二、选择结构
1.if语句
1)if语句的一般形式:
if(表达式1){
语句1
语句2
}
表达式可以是关系表达式/逻辑表达式/甚至是数值表达式。
2)if 的其他形式
1》if(表达式)语句1 (没有else成分)2》if (表达式1){ 语句1 }else if(表达式 2){ 语句2 }else if (表达式3){ 语句3 }else{ 语句4 }
3)if语句的嵌套
if ()
if()语句1
else 语句2
else
if()语句3
else 语句4
4) if 的应用 通过输入成绩判断等级
if (score>=90 && score<=100) { // [90, 100] printf("A\n");} else if (score>=80) { // [80, 89] printf("B\n");} else if (score>=70) { // [70, 79] printf("C\n");} else if (score>=60) { // [60, 69] printf("D\n");} else { // (-∞, 59] printf("E\n");}return 0;}
5)if 语句的注意问题:
1》if(条件)语句1;语句2;//此时条件成立时,语句1、2都执行,若条件不成立,则语句2执行。2》if(10)printf("a");elseprintf("b");//永真式 ,永远输出a。if(5>6);{ printf("A"\n);} return 0;//永假式 数值输出为A,因为if(5+6)后面的“;”,使得语句成为空语句。3》int a =100;if (a=0)printf("a等于0\n");elseprintf("a不等于0\n"); //始终输出后者。
2.switch 语句
1)switch语句格式
switch (表达式){ case 常量1 :语句1; break; case 常量2 : 语句2 break; case 常量3 : 语句3 ... default : }
表达式可以是整形的常量/整形变量,返回值为整形的表达式。
如果case后面定义新的变量,必须用‘{ }’。
如果语句后面无break语句,则程序将按照顺序执行所有的case语句。
因为 case具有穿透性。
2) if和switch的对比if用得比较多,比较灵活,if语句能完成的功能switch 不一定能实现,switch只能某个单值;switch能完成的,if也能完成;有些情况下,两者可以互换。
三、循环结构
1.while语句
while语句一般表达式:
while (条件表达式){ 循环体语句;}
当给定的条件表达式语句为真,则执行循环体语句,否则不执行循环体。
循环体如果包含一个以上的语句,应该用大括号扩起来,作为符合语句出现。如果没有括号,则while语句执行循环的范围就是知道while后面的第一个分号处。所以 while(1);由于空语句对出现,造成了死循环。
2. continue 语句
while (count<50) { ++count; if (count%10 == 0) { continue; // 直接结束这一次循环体,进入下一次循环 } printf("做第%d次俯卧撑\n", count); }
contimue 在这的作用时当满足本循环语句的条件表达式时,直接结束本次循环,进入到下一次。可以用continue筛选并输出一定范围内n的倍数。
3. break语句
break 通常用于switch 语句和循环语句中,目的是当进入该循环时直接结束循环体。但是在多重嵌套中,只对内部循环体有效。
while (count<50) { ++count; if (count%10 == 0) { break; // 直接结束整个循环体 } printf("做第%d次俯卧撑\n", count); }
4.do..while型
1)语句格式:
do { 循环体; }while(条件表达式);
它的特点是:先无条件的执行循环体,然后再判断循环条件是否成立。
与while的不同之处就是,while先判断后执行,而do…while是先执行后判断。
6.for 循环(重点)
1)for循环语句格式:
for(语句1;条件;语句2){ 循环体;}//语句1是初始化语句,语句2是增量语句。
2)先判断语句1是否符合条件要求,当条件成立,则执行循环体,然后执行变量增值,再进行判断。
for (int count = 0; count < 50; count++) { printf("做俯卧撑\n"); }
3)for循环有很大的用处,在之前的求值两个数大小,到以后的遍历数组、冒泡排序、选择排序中都能用上for循环。
4)最简单的for循环死循环
for(;;);
5)for 循环嵌套
输出9*9乘法表:
表达思想:for循环外层控制行数,内层控制列数。
#include <stdio.h>int main(int argc, const char * argv[]) { for (int i=1; i<=9; i++) { for (int j=1; j<=i; j++) { printf("%d*%d=%d\t",j,i,j*i); } printf("\n"); } return 0;}
如图所示。
- 黑马程序员——C语言基础04—程序控制
- 黑马程序员——程序控制结构
- 黑马程序员——C语言基础
- 黑马程序员——C语言基础
- 黑马程序员——C语言基础
- 黑马程序员——JAVA基础之程序控制流结构之判断结构,选择结构
- 黑马程序员——JAVA基础之程序控制流结构之循环结构,循环嵌套
- 黑马程序员——C语言基础篇---基础语法
- 黑马程序员——C语言基础---基础语法
- 黑马程序员——C语言基础——指针
- 黑马程序员——C语言——基础运算
- 黑马程序员————C语言基础概念
- 黑马程序员——C语言基础——排列
- ——黑马程序员——C语言基础--数据类型
- 黑马程序员——C语言——基础语法
- 黑马程序员——C语言基础—-----指针
- 黑马程序员———C语言基础测试总结
- 黑马程序员——C语言基础02—数据类型
- nginx 服务启动脚本 chkconfig service
- Redis 横向扩展案例
- 最大熵(一)
- 反射 + 配置文件 实现IOC容器
- 最后总结
- 黑马程序员——C语言基础04—程序控制
- java基础
- Subversion常见问题及解决方法
- linux下的用户和用户组的管理
- 《深入理解Java虚拟机》学习笔记之垃圾收集器总结
- 集中常见的排序算法总结
- Using hardware layers to improve Android animation performance
- Active UNIX domain Sockets--------由netstat想到的
- expdp遇到ORA-39014: One or more workers have prematurely exited.