黑马程序员_C语言基础_循环结构使用区别,9*9口诀表

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------   

    程序的循环结构主要分为三种形式:while,do……while,for语句三种的使用各不相同,要想更好的掌握好他们各自的使用,需要找出他们使用技巧。

1.while循环

    格式:while(循环条件)

            {

                循环语句;

            }

      语义:先判断条件,当满足条件则进行下面的循环,若不符合则跳出循环。

      简单实例:计算从1+2+3+……+n的值。

int main(int argc,const char *argv[])
{
	//定义变量
	int i = 0, s = 0;
	//用来接收计算的个数,到n结束
	int n;
	scanf("%d", &n);
	//循环计算从1到n的和
	while (i <= n)
	{
		s = s + i;
		i++;
	}
	printf("%d", s);
	return 0;
}
while 循环需要注意的:

1.while(-1),while(1)都是死循环;

2.当一个变量与一个常量进行==或!=时,通常把常量写在前面,如int a=3;while(2==a){};

3.while后如果只有一条语句,可以省略大括号;

4.作用域紊乱:内部代码定义的变量在外部不可以访问。

2、do……while循环

    格式:do

               {

                 ……循环语句;

               }while(循环条件)

     语义:先进行循环,在判断条件。当条件满足循环条件时继续执行循环语句,若不满足,则不在执行。

     简单实例:计算从1+2+3+……+n的值。

int main(int argc,const char *argv[])
{
	//定义变量
	int i = 0, s = 0;
	//用来接收计算的个数,到n结束
	int n;
	scanf("%d", &n);
	//循环计算从1到n的和
	do{
		s = s + i;
		i++;
	} while (i <= n);
	printf("%d", s);
	
	return 0;
}

注意:while循环与do……while循环的不同之处:

1.当循环条件第一次为真时,执行次数是一样的;

2.当循环条件第一次为假时,while循环执行0次,do……while循环执行1次。

3、for循环

    格式:for(表达式1;表达式2;表达式3){

              循环语句;

              }

    for循环的三要素:控制条件,循环体,能够控制条件为假的操作。

    最常用的是for循环的嵌套,打印输出图形。

    打印正三角形,倒三角,正三角代码如下:

int main(int argc,const char *argv[])
{
		//打印正三角
		for (int i = 0; i < 5; i++){
			for (int j = 0; j <=i; j++)//第x行打印x个
			{
				printf("*");
			}
			printf("\n");
		}
		//打印倒三角5行5列
		for (int i = 4; i >= 0; i--){
			for (int j = 0; j <=i; j++)
			{
				printf("*");
			}
			printf("\n");
		}
		//打印倒三角5行5列
		for (int i = 0; i <= 4; i++){
			for (int j = 0; j <=4-i; j++)//第x行打印x个
			{
				printf("*");
			}
			printf("\n");
		}
		for (int i = 0; i <5; i++){
			for (int j = 0; j <5 - i; j++)//第x行打印x个
			{
				printf("*");
			}
			printf("\n");
		}
		//打印正三角5行5列
		//控制行数
		for (int i = 1; i <= 5; i++){
			for (int j = 0; j < 5 - i; j++)//控制空白
			{
				printf(" ");
			}
			//控制*
			for (int k = 0; k < 2 * i - 1; k++)//控制空白
			{
				printf("*");
			}
			printf("\n");//打印回车
		}
	return 0;
}
总结:第一个for循环控制的是行数,第二个for循环控制的列数,用的是for循环嵌套。

还有经典的一个是打印9*9乘法口诀表,实现思想是一列一列的打印输出,因为每一列的第一个乘数都是相同的。

int main(int argc,const char *argv[])
{
	//9 * 9乘法表
	//控制行数
	for (int i = 1; i <= 9; i++){
		//控制列数
		for (int j = 1; j <= i; j++)
		{
			printf("%d*%d=%d   ", j, i, j*i);//先输出列
		}
		printf("\n");
	}	
	return 0;
}

总结:在进行循环的时候,还要结合break与continue使用。

break多用在switch语句,是跳出当前循环,结束当前循环,break之后的语句不在执行。

if(表达式)else{ ...... break;......}
1)break语句对if-else的条件语句不起作用;
2)在多层循环中,一个break语句只向外跳一层。

continue是结束本次循环,还可以继续下次的循环。continue语句只用在 for、while、do-while等循环体中,常与if条件语句一起使用,用来加速循环。

这两点的使用应该多多体会。


------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------   


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值