循环
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循环是不会进行更新循环.
总结
区别 | 相同点 |
---|---|
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 的数值表
i | j |
---|---|
1 | 1 |
2 | 2 |
3 | 3 |
4 | 4 |
5 | 5 |
得出:
有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跳出本次循环 进入下次循环 |