黑马程序员——C语言基础04—程序控制

时间:2023-02-19 23:47:09

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-

一、 程序控制

顺序结构:默认的流程结构,按照书写顺序执行每一条语句。

选择结构对给定的条件进行判断,再根据判断结果来决定执行哪一段代码。有if语句和switch语句。
循环结构再给定条件成立的情况下,反复执行某一段代码。
有while语句和for语句。

二、选择结构
1.if语句
1)if语句的一般形式:

if(表达式1){
语句1
语句2

表达式可以是关系表达式/逻辑表达式/甚至是数值表达式。

2)if 的其他形式

1if(表达式)语句1          (没有else成分)
2if (表达式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");
else
printf("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");
else
printf("a不等于0\n");

//始终输出后者。


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

switch (表达式){

case 常量1 :语句1

break

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;
}

黑马程序员——C语言基础04—程序控制
如图所示。