1.While 循环
C++ 语言提供一种名为 while
的循环结构。它可以帮助我们重复地进行相同的任务。
例如输出 100 遍 hello world!
。
#include <iostream>
using namespace std;
int main() {
int i = 0;
while (i < 100) {
cout << "hello world!" << endl;
i += 1; // i++;
}
return 0;
}
while 语法结构
其中,循环继续条件 的值为布尔类型,当条件的值为 true
时,会继续执行循环内部的语句,否则跳出循环,执行循环后的语句。
while (循环继续条件) {
循环体;
}
While 循环的执行流程:循环条件->循环体->循环条件
当while循环条件没有写,程序报错
循环条件如果是一个常量,那么结果就是无限循环或不循环
循环三大条件:初始条件,循环条件,运算条件
2.for循环
for 循环只是语法与 while 循环不太一样,功能和执行流程,与 while 循环是非常相似的。
for 循环的语法结构是这样的:
for(初始条件;循环条件;运算条件){
循环体;
}
for循环执行流程:初始条件->循环条件->循环体->运算条件->循环条件
当for循环条件没有写,一定是无限循环
当while循环或for循环没有写大括号时,只会默认下面的第一句话为循环体
循环里声明的变量只能在循环里使用
3.do-while循环(不常用)
do-while 循环的语法结构是这样的:
do{
循环体;
}while(循环条件);
do-while循环执行流程:循环体->循环条件->循环体
例题:
计算1-n的累加和
for循环:
#include<bits/stdc++.h>
using namespace std;
int main(){
long long a,b,s=0;
cin>>a;
for(int i=0;i<=a;i++){
s=s+i;
}
cout<<s;
return 0;
}
while循环:
#include<bits/stdc++.h>
using namespace std;
int main(){
long long a,b,s=0;
cin>>a;
while(a){
s+=a;
a--;
}
cout<<s;
return 0;
}
枚举法
枚举 就是根据提出的问题,一一列出该问题的所有可能的解,并在逐一列出的过程中,检验每个可能解是否是问题的真正解,如果是就采纳这个解,如果不是就继续判断下一个。
枚举法一般比较直观,容易理解,但由于要检查所有的可能解,因此运行效率较低。
能够用枚举法解决的题目往往是最简单的一类题目。这种题目具有以下特点:
1.解枚举范围是有穷的。
2.检验条件是确定的。
打印图形
一维单一字符图形打印
这是最为简单的图形打印题目了,通过循环次数控制某个单一字符或字符串的输出次数。根据是在一行内还是一列内,决定是否输出语句后要换行。如果是一行内,则不换行;如果在一列内,则换行。
二维单一字符矩形打印
一维单一字符图形打印是通过一层循环的循环次数去控制输出行数或列数。当我们希望从一维拓展到二维的时候,我们很自然的就可以拓展到两层循环。用外层循环控制行数,内层循环控制每行的列数。
内层循环控制的每一行的列数,这与在一维单一字符图形时去控制一行中字符个数的方式完全等价。
而外层循环控制有多少行,这其实控制的是每行输出后要输出多少次换行,与我们在一维单一字符图形时去控制打印列数时完全一致。
框架
for(int i=1;i<= ;i++){//i为行数
for(int j=1;j<= ;j++){//j为每行个数
cout<<" ";
}
}
模拟法
步骤:
1. 先读题,提取有关信息
2. 根据测试数据模拟整个过程
3. 根据模拟过程转换成代码