自用循环总结(C ++)

循环

do- while

更多的用在字符界面

int a = 1;
int b = 10;
do							//符合条件执行的程序在do里
{
	b -= a;
	a++;
}
while(b-- < 0 ) 			//判断循环条件在后面
//输出为8

while

int a = 0;
int b = 10;
while(a++ <b)
{
	cout << "第"<<a<<"次执行程序"<<endl;
}

for

循环三要素
在C++里表达式1可以直接定义循环变量初值.
for在累加上对于其他循环有先天性优势.

for(表达式1;表达式2;表达式3)
{
	语句;
}
表达式1通常是为循环变量赋初值,可以省略
表达式2循环的条件,可省略
表达式3更新循环变量的值,可省略
分号用来隔开三个表达式,不可以省略.

表达式3是在循环条件执行之后才执行,如果没有进入for循环是不会进行更新循环.

i = 0
i < N
输出wdnmd
i++
循环外程序

总结

区别相同点
do-while 不论如何都会执行一次 而while如果条件不符合就不会进入都是重复执行时可以采用的函数.
在知道自己要循环几次的时采用for循环,其余的时候通常采用while和do-while循环

嵌套循环

外层循环控制行(行数,换行)换行
内层循环控制列(列数,列的图形)归零

内层的比外层的循环条件少1

实际编程中尽量控制在三层嵌套.不要太多.

打印图形

   *
  ***
 *****
*******
 *****
  ***
   *

一.首先分析这个

*****
*****
*****
*****
*****

首先只看星号,是5行5列 所以我们就可以快速确定i,j值.

for(int i = 0; i < 5; i++)
{
	for(int j = 0; j < 5; j++)
	{
		cout << "*";
	}
	cout << endl;
}
*
**
***
****
*****

列出i j 的数值表

ij
11
22
33
44
55

得出:
有j <= i

for(int i = 0; i < 5; i++)
{
	for(int j = 0; j < i; j++)  	//也就是只用修改嵌套函数里的循环条件即可打出三角形
	{
		cout << "*";
	}
	cout << endl;
}

二.再看三角形图形的循环

*
***
*****
*******

j <= 2 * i + 1

for(int i = 0; i < 4; i++)
{
	for(int j = 0; j < 2 * i + 1; j++)  	//
	{
		cout << "*";
	}
	cout << endl;
}

三.倒过来的三角形

*******
*****
***
*

j <= 8 - 2 * i + 1

for(int i = 0; i < 4; i++)
{
	for(int j = 0; j < (4 - i) * 2 + 1; j++)  	//条件只需要在判断条件里调整即可
	{
		cout << "*";
	}
	cout << endl;
}


最后根据上述结论很容易下列代码.

int i = 0;
	int j = 0;
	int m = 0;	//假如把括号里的 m = 2 * i + 1 提前到循环外(即此处),将在下面循环i刷新之后进入m循环时更新错误的m值 

	for (i = 0; i < 4; i++)
	{
		for (j = 0; j < 3 - i; j++)
		{
			cout << " ";
		}
		for (m = 0; m < 2 * i + 1; m++)
		{
			cout << "*";
		}
		cout << endl;
	}
	for (i -= 2; i > -1; i--)					//如果是对称的就可以只修改外层 内层不动
	{
		for (j = 0; j < 3 - i; j++)
		{
			cout << " ";
		}
		for (m = 0; m < 2 * i + 1; m++)
		{
			cout << "*";
		}
		cout << endl;
	}

跳出循环

break

跳出循环

while(1)
{
	break;
}

for( ; ; )
{
	break;
}

switch(){
case 常量1;
	 语句1;
	 break;
case 常量2;
	 语句2;
	 break;//跳出switch 不进行以下的语句;
...
default; //默认
	 语句n;
}

continue

跳过本次循环,继续下次循环.

区别

使用场合作用
break可以用在switch里和循环结构里break终止循环,调到循环外的语句
continue只能在循环结构continue跳出本次循环 进入下次循环
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值