学C笔记归纳 第九篇——分支循环语句3_for_while_do while(附九九乘法表解析和三种方式实现)

本文详细介绍了C语言中的while、for循环结构,以及如何使用它们打印九九乘法表。特别强调了do-while循环的特点和for循环的常用性。同时提到了循环中变量初始化和控制的重要性,以及如何避免for循环中的错误。
摘要由CSDN通过智能技术生成

基础语法模版:

  while(1 条件控制语句)

  {

    2 语句序列;

  }

顺序:12 12 12....2 1

  do

  {

    1语句序列;

  }

  while(2 循环控制表达式);

顺序:1   2 12 12....12

  for(初始化表达式;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继续,   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循环一样注意 行循环内初始化列数

  • 11
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值