【Level 0】循环
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
Description
我们往往会遇到需要多次执行同一个操作的情形,例如在常量与变量一节中计算,假设要计算,显然写十九个乘号来计算是十分不便的,因此我们需要用循环来操作。
while循环的结构如下
while (exp) {
// do something...
}
只要exp的值为true,就执行一次花括号内(循环体)的内容,我们自然可以发现,如果exp一直为true,程序将一直重复不断地运行这一段代码。
因此一般情况下,我们需要在循环体内修改,使exp的值发生变化,这样循环才能在完成任务后继续执行后续的代码。
假设我们要计算1+2+...+100,这时结束条件就是x > 100
int x = 1, sum = 0;
while (x <= 100) {
sum = sum + x; // 也可以写成sum += x;
}
为什么上面的代码是死循环?这是因为我们没有改变x的值,导致x <= 100一直为true,所以不停地执行sum += x;使得程序无法向下继续执行。因此我们要修改x,使得循环退出:
int x = 1, sum = 0;
while (x <= 100) {
sum += x;
x += 1; // 也可以写成x++;
}
这样,每次循环x都会增加1,最终当x为101时表达式为false,退出循环。
for循环与while循环等价:
for (expa; expb; expc) {
// do something...
}
进入循环前,执行expa,每次循环判断的表达式为expb,每次执行完循环体后,再执行一次expc。通常,我们在expa声明循环的临时变量,在expc对循环的临时变量进行修改,但并不一定要这样做。
for和while可以进行等价的转化,例如
int sum = 0;
for (int x = 1; x <= 100; x++) {
sum += x;
}
等价于
int x = 1, sum = 0;
while (x <= 100) {
sum += x;
x++;
}
Format
Input
一个正整数
Output
一个正整数,计算的结果
使用循环的方法求解
Samples
3
6