------
Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一.流程控制
- 顺序结构:默认的流程结构。按照书写顺序执行每一条语句。
- 选择结构:对给定的条件进行判断,再根据判断结果来决定执行哪一段代码。
- 循环结构:再给定条件成立的情况下,反复执行某一段代码
二.选择结构——if
- 1.简单使用
- if(表达式)语句1:
int a = -10;
if (a>1)
printf("A\n");
- if(表达式)语句1;else语句2;
// 人数
int count = 40;
if ( count >= 50 )
{
printf("开班!!!\n");
printf("准备机器!!!\n");
}
else
{
printf("不开班!!!\n");
printf("不准备机器!!!\n");
}
- if(表达式){}
int count = 40;
if ( count >= 50 )
{
printf("开班!!!\n");
printf("准备机器!!!\n");
}
- if——else if——else
int a = 6;
if (a++ > 10) // a == 7
{
printf("A\n");
}
else if (a++ > 5) // a == 8
{
printf("B\n");
}
else if (a++ > 3)
{
printf("C\n");
}
else
{
printf("D\n");
}
练习
#include <stdio.h>
int main()
{
// 1.提示输入
printf("请输入分数值:\n");
// 2.接收输入
int score;
scanf("%d", &score);
// 3.判断等级 (性能最高)
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;
}
三.选择结构-switch
1.简单使用
switch(表达式){case 数值1:break;...default:break;}
int a = 10;
// break:退出整个switch语句
// 如果case后面没有break,就会执行后面所有case中的语句,直到遇到break为止
int b = 10;
switch (a)
{
case 10:
printf("A\n");
b++;
case 5:
printf("B\n");
b++;
case 0:
printf("C\n");
b++;
break;
default:
printf("D\n");
break;
}
2. if和switch的对比
很多情况可以互换
if用得比较多,比较灵活,switch只能某个单值
如果要在case后面定义新的变量,必须用大括号{}括住
char c = '+';
int a = 10;
int b = 20;
// 如果要在case后面定义新的变量,必须用大括号{}包住
switch (c) {
case '+':
{
int sum = a + b;
printf("和是%d\n", sum);
break;
}
case '-':
{
int minus = a - b;
printf("差是%d\n", minus);
break;
}
}
四.循环结构——while
1.简单使用
while(表达式){}
// 1.先确定需要重复执行的操作
// 2.再确定约束条件
// 定义一个变量记录做的次数
int count = 0;
while (count<50)
{
++count;
if (count%10 != 0)
{
printf("做第%d次俯卧撑\n", count);
}
}
continue:
while (count<50)
{
++count;
if (count%10 == 0)
{
// 直接结束这一次循环体,进入下一次循环
continue;
}
printf("做第%d次俯卧撑\n", count);
}
break的使用:某次的时候停止循环
while (count < 50)
{
++count;
printf("做第%d次俯卧撑\n", count);
if (count == 20)
{
break;
}
}
2.特点
只有条件成立彩绘执行循环体
五.循环结构-do while
特点:一定会执行一次循环体
while和do while循环对比
#include <stdio.h>
int main()
{
int i = 0;
/*
while (i<0)
{
i++; // 5
}*/
do {
i++; // 5
} while (i<0);
printf("i=%d\n", i);
return 0;
}
六.循环结构-for
1.简单使用
运行过程
初始化语句等可以是多句(把printf放到for的括号中)
#include <stdio.h>
int main()
{
/*
"做俯卧撑"50次
*/
/*
int count = 0;
for ( ; count < 50; )
{
printf("做俯卧撑\n");
count++;
}*/
/*
for (int count = 0; count < 50; )
{
printf("做俯卧撑\n");
count++;
}*/
/*
for (int count = 0; count < 50; count++)
{
printf("做俯卧撑\n");
}*/
/*
for (int count = 0; count < 50; printf("做俯卧撑\n"),printf("哈哈哈\n"),count++)
{
}*/
return 0;
}
2.for循环嵌套
#include <stdio.h>
int main()
{
for (int i = 1; i<=4; i++)
{
//printf("好友列表%d\n", i + 1);
printf("好友列表%d\n", i);
/*
printf(" 好友1\n");
printf(" 好友2\n");
printf(" 好友3\n");
printf(" 好友4\n");
printf(" 好友5\n");*/
for (int j = 1; j<=7; j++)
{
printf(" 好友%d\n", j);
}
}
return 0;
}
3.陷阱
- 死循环
for(;;);
- for循环体内部变量的作用域
- 作用域混淆
- while循环和for循环的比较
可以互换
for循环的变量可以及时回收
七.break和continue
1.break
使用场合:switch、循环结构
循环嵌套线的break
2.continue
使用场合:循环结构
循环嵌套下的continue
int main()
{
/*
for (int i = 0; i<5; i++)
{
printf("%d\n", i);
if (i%2)
{ // i为奇数:1、3
continue;
}
}*/
/*
for (int i = 0; i<5; i++)
{
printf("哈哈哈\n");
continue;
printf("哈哈哈23\n");
}*/
for (int i = 0; i<3; i++)
{
for (int j = 0; j<2; j++)
{
if (j==1)
{
break;
}
printf("A\n");
}
break;
printf("B\n");
}
return 0;
}