黑马程序员——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 的其他形式

1if(表达式)语句1          (没有else成分)2if (表达式1){            语句1else if(表达式 2){            语句2else if (表达式3){            语句3else{            语句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 语句的注意问题:

1if(条件)语句1;语句2//此时条件成立时,语句1、2都执行,若条件不成立,则语句2执行。2if(10)printf("a");elseprintf("b");//永真式 ,永远输出a。if(5>6);{    printf("A"\n);}    return 0;//永假式  数值输出为A,因为if(5+6)后面的“;”,使得语句成为空语句。3int a =100;if (a=0)printf("a等于0\n");elseprintf("a不等于0\n"); //始终输出后者。

2.switch 语句
1)switch语句格式

switch (表达式){ case 常量1  :语句1break; case 常量2  : 语句2              break; case 常量3  : 语句3 ... default : }

表达式可以是整形的常量/整形变量,返回值为整形的表达式。
如果case后面定义新的变量,必须用‘{ }’。
如果语句后面无break语句,则程序将按照顺序执行所有的case语句。
因为 case具有穿透性。

2ifswitch的对比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;}

这里写图片描述
如图所示。

0 0
原创粉丝点击