文章目录
for 循环控制
基本介绍:听其名而知其意,就是让你的代码可以循环的执行。
基本语法
循环变量定义
for(①循环变量初始化;②循环条件;④循环变量迭代){
③循环操作(多条语句);
}
使用 for 循环完成 打印五个相同的古诗!
#include<stdio.h>
void main() {
int i;
for (i = 1; i < 6; i++) {
printf("\n坐地日行八万里!");
}
}
注意事项和细节说明
1)循环条件是 返回一个表示真(非 0)假(0) 的表达式
2)for(;循环判断条件;) 中的初始化和变量迭代可以不写(写到其它地方),但是两边的分号不能省略。
3)循环初始值可以有多条初始化语句,但要求类型一样,并且中间用逗号隔开,循环变量迭代也可以有多条变量 迭代语句,中间用逗号隔开。
for 循环练习题
1)打印 1~100 之间所有是 9 的倍数的整数的个数及总和
#include<stdio.h>
void main() {
int i; //定义初始化
int count = 0; //记录个数
int sum = 0; //记录总和
for (i = 0; i <= 100; i++) {
//判断是否是9的倍数
if(i % 9 == 0){
count++;
sum = sum + i;
}
}
printf("\nsum=%d,count=%d",sum,count);
}
2)完成下面的表达式输出
#include<stdio.h>
void main() {
int num = 0;
printf("请输入一个整数");
scanf("%d",&num);
int i = 0;
for(i = 0; i <= num ;i++){
printf("\n%d + %d = %d",i,num-i,num);
}
}
while 循环控制
基本语法
①循环变量初始化;
while(②循环条件){
③循环体(多条语句);
④循环变量迭代;
}
2) 使用 while 循环完成前面的题(打印 1~100 之间所有是 9 的倍数的整数的个数及总和)
#include<stdio.h>
void main(){
int i = 0;
int count = 0;
int sum = 0;
while(i <= 100){
if(i % 9 == 0){
count++;
sum = sum + i;
}
i++;
}
printf("个数为:%d,总和为:%d",count,sum);
}
注意事项和细节说明
1) 循环条件是返回一个表示真(非 0)假(0) 的表达式
2)while 循环是先判断再执行语句
课堂练习题
1)打印 1—100 之间所有能被 3 整除的数
#include<stdio.h>
void main(){
//打印 1—100 之间所有能被 3 整除的数
int i = 1;
int max = 100;
while(i <= max){
if(i % 3 == 0){
printf("\n i=%d 能被 3 整除", i);
}
i++;
}
}
2) 打印 40—200 之间所有的偶数
#include<stdio.h>
void main(){
//打印 1—100 之间所有能被 3 整除的数
int i = 40;
int max = 200;
while(i <= max){
if(i % 2 == 0){
printf("\n 偶数 : %d", i);
}
i++;
}
}
3)不断输入姓名,直到输入 “exit” 为止
#include<stdio.h>
#include<string.h>
void main() {
//不断输入姓名,直到输入 "exit" 为止[使用 while 完成]
//1. 需要接受用户的输入,字符串[字符数组]
//2. 提示: <string.h> 有一个 strcmp 函数,判断两个字符串是否相同
//int strcmp(const char *str1, const char *str2)
//返回 0 表示相等,非 0 表示不相等
char name[10] = "";
while( strcmp(name,"exit") != 0) { // exit = > 0 != 0
printf("\n 请输入名字");
scanf("%s", name); // 这里不需要 加 &name, 因为 数组的名称就是地址
printf("\n 你输入的名字是=%s", name);
}
printf("\n退出 while");
}
do…while 循环控制
基本语法
①循环变量初始化;
do{
②循环体(多条语句);
③循环变量迭代;
}while(④循环条件);
注意:do – while 后面有一个 分号,不能省略
do…while 循环执行流程分析
1)使用 do…while 循环完成前面的题(打印 1~100 之间所有是 9 的倍数的整数的个数及总和)
#include<stdio.h>
void main(){
int i = 1;
int max = 100;
int count = 0; //个数
int sum = 0; //总和
do{
if(i % 9 == 0){
count++;
sum = sum + i;
}
i++;
}while(i <= max);
printf("个数为:%d,总和为:%d",count,sum);
}
注意事项和细节说明
1) 循环条件是返回一个表示真(非 0)假(0) 的表达式
2) do…while 循环是先执行,再判断
课堂练习题
1)打印 1—100
#include<stdio.h>
void main(){
int i = 1;
int max = 100;
do{
printf("\n%d",i);
i++;
}while(i <= max);
}
2)计算 1—100 的和
#include<stdio.h>
void main(){
int i = 1;
int max = 100;
int sum = 0; //总和
do{
sum = sum + i;
i++;
}while(i <= max);
printf("总和为 %d",sum);
}
3)统计 1——200 之间能被 5 整除但不能被 3 整除的个数
#include<stdio.h>
void main(){
//统计 1——200 之间能被 5 整除但不能被 3 整除的个数
int i = 1;
int max = 200;
int count = 0; //个数
do{
if(i % 5 == 0 && i % 3 != 0){
count++;
}
i++;
}while(i <= max);
printf("个数为 %d",count);
}
4) 如果老公同意老婆购物,则老婆将一直购物,直到老公说不同意为止 [printf(“老婆问:我可以继续购物吗?y/n”)]
#include<stdio.h>
void main(){
/*
如果老公同意老婆购物,则老婆将一直购物,
直到老公说不同意为止 [printf("老婆问:我可以继续购物吗?y/n")]
*/
char answer = ' ';
do{
printf("老婆问:我可以继续购物吗?y/n");
scanf("%c",&answer);
getchar();
}while(answer == 'y');
printf("老婆终于退出购物~~~~");
}