前置
表达式
表达式是将变量或常量与运算符结合起来产生新的值。
- 赋值表达式:a += 1
- 条件判断表达式:a > b
语句
C语言执行的完整的一条逻辑表达,是表达式、变量、常量、关键字等的组合,以分号结束。
- a = a + 1;就是一条语句,以分号结束
语句块
{}包裹起来的一系列语句,对外呈现为一个整体语句,会按序执行完{}中的所有语句。
{
int a = 1;
int b = 2;
int c;
c = a + b;
} //语句块结尾不需要;
循环控制流
当需要重复执行同一代码块多次时,循环控制流就派上用场。
循环控制流就是在满足一定条件的情况下,不停地执行同一个语句块,直到条件不满足,结束循环。
while循环
- 基本格式
while(条件表达式){ //表达式值为1,就一直执行语句,直到表达式为0
语句
}
- 执行顺序
- 条件表达式->语句->条件表达式->语句->条件表达式->语句…如此反复
- 如果表达式的值永远为1则为死循环
- 代码示例
#include <stdio.h>
int main(int argc, char const *argv[])
{
int a = 10;
// 只要a满足小于等于15,a+1并且打印a
while(a <= 15){
a += 1;
printf("a = %d\n", a);
}
return 0;
}
运行结果:
a = 11
a = 12
a = 13
a = 14
a = 15
a = 16
for循环
- 基本格式
for(表达式1; 表达式2; 表达式3){
语句
}
// 表达式1和3可以不写在for()中,后面示例
- 执行顺序
- 表达式1只在第一次进入for循环时执行一次;
- 表达式2为1–>语句–>表达式3–>表达式2为1–>语句–>表达式3–>表达式2…如此反复
- 直到表达式2为0退出循环
- 代码示例
#include <stdio.h>
int main(int argc, char const *argv[])
{
for(int a = 10; a <= 15; a++){
printf("a = %d\n", a);
}
// 也可以这样
// int a = 10; // 表达式1提到前面
// for(; a <= 15; a++){ //for中的分号不能少
// printf("a = %d\n", a);
// }
// 也可以这样
// int a = 10;
// for(;a <= 15; ){
// printf("a = %d\n", a);
// a++; //表达式3放到循环体中
// }
// 等价上面的while
// int a = 10;
// for(;a <= 15; ){
// a++;
// printf("a = %d\n", a);
// }
return 0;
}
运行结果:
a = 10
a = 11
a = 12
a = 13
a = 14
a = 15
do-while循环
- 基本格式
do{
语句
}while(条件表达式); //最后有个分号要记住
- 执行顺序
- 语句–>条件表达式值为1–>语句–>条件表达式值为1–>语句–>条件表达式…如此反复
- 直到条件表达式值为0
- do-while循环的特点是无论如何都会执行一遍语句。
- 代码示例
#include <stdio.h>
int main(int argc, char const *argv[])
{
int a = 1;
do{
a++;
printf("a = %d\n", a);
}while(a < 5);
return 0;
}
运行结果:
a = 2
a = 3
a = 4
a = 5
break语句
break语句用于从循环中提前跳出,提前结束循环。
- 代码示例
#include <stdio.h>
int main(int argc, char const *argv[])
{
int a = 1;
while(a < 5){
a++;
printf("a = %d\n", a);
if(a == 3){
break;//结束循环,4 5就不会继续出现了
}
}
return 0;
}
运行结果:
a = 2
a = 3
continue语句
continue语句用于提前结束本轮循环,continue之后的语句不会被执行,重新开始新的一轮循环。
- 代码示例
#include <stdio.h>
int main(int argc, char const *argv[])
{
int a = 1;
while(a < 5){
a++;
if(a == 3){
continue;//结束本轮循环,3就不会打印了
}
printf("a = %d\n", a);
}
return 0;
}
运行结果:
a = 2
a = 4
a = 5
goto语句
当想让程序跳转执行的话,可以使用goto+标号的方式,跳转到标号标记的代码块执行。
标号的命名方式和变量命名方式相同
标号后面要接: 语句块
- 代码示例
#include <stdio.h>
int main(int argc, char const *argv[])
{
int a = 1;
while(a < 5){
a++;
if(a == 3){
goto error;//跳转到eroor标记的语句块,结束循环
}
printf("a = %d\n", a);
}
error: {
printf("error error!\n");
}
return 0;
}
运行结果:
a = 2
error error!
建议尽量少用goto语句