一.for循环
1.基本概念:
for(初始化表达式;条件表达式;循环后操作表达式){
语句
…
}
初始化表达式:在循环开始之前仅仅执行一次
条件表达式:在每一次循环开始的时候都会执行条件表达式,若成立就执行循环体中的语句,若不成立则退出循环
循环后操作表达式:当每一次循环结束的时候都会执行循环后操作表达式
代码演示:
#include <stdio.h>
int main(int argc, const char *argv[]{
for(int i=0;i<5;i++){
printf("i=%d\n",i);
}
return 0;
}
2.for循环的注意点
1.for()小括号后面不能直接写分号
2.作用域紊乱:如果想在循环体中定义变量,一定要加{}
3.for循环的作用域
1.在for()小括号中定义的变量,不可以在外部被访问
2.在for循环体中定义的变量,不可以在小括号中被访问
二.while语句
1.基本概念
While(条件表达式){
语句;
…
}
判断条件表达式是否成立,如果成立就执行大括号中的语句,执行完毕之后,返回条件表达式,再次判断,若继续成立,则重复执行大括号中的语句,以此类推,直到条件表达式不成立。
2.while 注意点
(1)while()括号后面不要加分号,因为分号也代表一条语句,造成死循环
(2)注意不要混淆==和= ,在while括号中进行赋值运算,通常常量写在前面(2==a)
(3)While()内部定义的变量,在外部不可以访问。
(4)作用域不要混淆:在while内部定义的变量,一定要加{}
代码演示:
// 用户从键盘上录入正整数n,计算n的阶乘
#include <stdio.h>
int main(int argc, const char *argv[]{
//提示用户录入
printf("请输入一个正整数\n");
//接收用户录入
int n;
scanf("%d",&n);
//计算阶乘
//定义循环控制变量
int i = 1;
// 定义一个变量记录每次循环的结果
int factorial;
while(i<=n){
factorial*=i;
i++;
}
printf("n!=%d",factorial);
return 0;
}
三.自己的理解
1.for循环的优点
(1)不容易出错
(2)更加简洁,可读性更好
(3)当整个循环结束的时候,还需要使用循环控制变量的时候就使用while语句,因为for()小括号中定义的变量,不可以被{}中的代码块访问
2.如何写一个循环
(1)确定需要重复执行的操作
(2)确定约束条件
(3)定义循环控制变量
(4)确定循环执行条件
(5)在循环中改变循环控制变量的值
四.两个关键字
break:1.用在switch语句中,用来结束switch语句
2.用在循环结构中,用来结束当前循环
continue:1.只能用在循环结构中
2.跳过continue后面的语句,进入下一次条件判断
五.循环嵌套练习
for嵌套规律:总执行次数=外层循环次数*内层循环次数
内层循环初始化表达式的值随着外层循环控制变量的改变而改变
练习1. for循环嵌套
打印图形
*
**
***
****
#include <stdio.h>
int main(int argc, const char *argv[]{
for(int i=0;i<4;i++){//外层循环控制行(需要打印几行)
for(int j=0;j<=i;j++){//内层循环控制列(每行打印几个)
printf("*");
}
printf("\n");
}
return 0;
}
练习2 if循环嵌套
// 用户从键盘上录入正整数n,计算n的阶乘
#include <stdio.h>
int main(int argc, const char *argv[]{
//提示用户录入
printf("请输入一个正整数\n");
//接收用户录入
int n;
scanf("%d",&n);
//计算阶乘
//定义循环控制变量
int i = 1;
// 定义一个变量记录每次循环的结果
int factorial;
while(i<=n){
factorial*=i;
i++;
}
printf("n!=%d",factorial);
return 0;
}
|
|