——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");
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具有穿透性。
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;
}
如图所示。