基础语法模版:
while(1 条件控制语句)
{
2 语句序列;
}
顺序:12 12 12....2 1
do
{
1语句序列;
}
while(2 循环控制表达式);
顺序:12 12 12....1 2
for(1 初始化表达式;2 条件控制语句;4 调整表达式)
{
3 语句序列;
}
顺序:1234 234 234...2
注意:
do while相对于while,循环至少执行一次,不常用;
for 循环比较常用,因为它的语句较为集中,便于阅读;
尽量不要在for循环体内修改循环变量,防止for循环失去控制;
网上教学建议for循环语句的循环控制变量的取值采用“前闭后开”区间,实际以手感为先; // 10次循环:for(i = 0; 10 > i ; i++;)
for循环 判断部分 被省略意味这部分恒成立;//for(;;;)死循环
for(int i =0;2 > i ;4) 在循环内初始化,C99语法才支持,C++可自由切换,也支持,如果报错就立马知道有这么一回事;
break | 用于直接跳出循环,结束一层循环 |
continue |
用于跳过本次循环后面的代码,while中直接去 1 判断部分,进行下一次循环的判断 for中则调到本次的4继续, 3 4 2 3 4...2 |
现在练习用循环打印九九乘法表:
思路:
概况:九九乘法表有九行九列;
规律:每一行 列数递增,每一列 行数递减 ,且每行第几行 就有对应列数;
实现:为实现两个递增,需要双层循环二者循环次数均为九,考略到 printf 函数的换行,将控制行数的循环作为外层循环。
#include<stdio.h> int main() { int h = 1; int l = 1; //行数列数初始化 for (h = 1; 9 >= h; h++) { for (l = 1; l <= h; l++) // 第几行有对应列数 printf("%d * %d = %2d ", l, h, h * l); //%2d两位数空格,一位数会空格以对齐 printf("\n"); //行数循环每次结束换行 } return 0; }
习惯 h<=9, h<10 一样
#include<stdio.h> int main() { int h = 1; int l = 1; //行数列数初始化 while( h<=9 ) { //l = 1; //确保每次行数循环开始,列数从一开始 while (l <= h) // 第几行有对应列数 { printf("%d * %d = %2d ", l, h, h * l); //%2d两位数空格,一位数会空格以对齐 l++; } h++; printf("\n"); //行数循环每次结束换行 } return 0; }
善用调试发现while循环与for不同,内层循环不会因外层循环开启而初始化列数,需人为加上:
#include<stdio.h>
int main()
{
int h = 1;
int l = 1; //行数列数初始化
while( h<=9 )
{
l = 1; //确保每次行数循环开始,列数从一开始
while (l <= h) // 第几行有对应列数
{
printf("%d * %d = %2d ", l, h, h * l); //%2d两位数空格,一位数会空格以对齐
l++;
}
h++;
printf("\n"); //行数循环每次结束换行
}
return 0;
}
#include<stdio.h> int main() { int h = 1; int l = 1; //行数列数初始化 do { l = 1; do { printf("%d * %d = %2d ", l, h, h * l); //%2d两位数空格,一位数会空格以对齐 l++; } while (l <= h); h++; printf("\n"); }while (h <= 9); return 0; }
和while循环一样注意 行循环内初始化列数
标签:语句,do,九九乘法,初始化,int,while,循环 From: https://www.cnblogs.com/xiaowanglong/p/17886975.html