一、while(当循环)
格式:
while(表达式){
循环体;
}
- 计算过程:
1)先判断表达式的值是否成立,若成立则执行循环体的内容。
2)循环体必须对表达式的值进行修改,使其有不成立情况,避免出现死循环。
3)如果表达式永远为真,则必须在循环体使用break语句跳出循环,避免出现死循环。
- 流程图

例求1+2+3+……+100的和:
//xxx班xxxx
void setup() {
Serial.begin(115200); //初始化串口,波特率115200
int s = 0,i = 1;
while(i <= 100){
s = s + i;
i = i + 1;
}
Serial.print("1+2+3+……+100的值为:");
Serial.println(s);
}
void loop() {
// put your main code here, to run repeatedly:
}
例2求任意整数阶乘、
void setup() {
Serial.begin(115200); //初始化串口,波特率115200
Serial.println("请输入一个整数,以回车确认:");
}
void loop() {
if (Serial.available() > 0) { // 检查串口是否有数据可读
int N = Serial.parseInt(); // 读取串口输入的内容
while (Serial.available() && Serial.read() != '\n'); // 读取换行符,以清除缓冲区
Serial.print("您输入的整数为:");
Serial.print(N);
long t = 1,i = 1;
while(i <= N){
t = t * i;
i = i + 1;
}
Serial.print("其阶乘值为:");
Serial.println(t);
}
}
二、do……while(直到循环)
格式:
do{
循环体;
} while(表达式);- 执行过程
1)执行循环体;
2)执行while后面的表达式,若成立则再次执行循环体,否则跳出循环。 - 流程图

例:计算给定数列的前N项和
//xxx班xxx
void setup() {
Serial.begin(115200); //初始化串口,波特率115200
Serial.println("请输入一个整数,以回车确认:");
}
void loop() {
if (Serial.available() > 0) { // 检查串口是否有数据可读
int N = Serial.parseInt(); // 读取串口输入的内容
while (Serial.available() && Serial.read() != '\n'); // 读取换行符,以清除缓冲区
Serial.print("您输入的整数为:");
Serial.print(N);
double s = 0;
double num = 1,den = 2,i = 1;
do{
s = s + num / den;
den = den + num;
num = den - num;
i++;
}while(i<=N);
Serial.print("前");
Serial.print(N);
Serial.print("项的合为:");
Serial.print(s);
}
}
评论0
暂时没有评论