是否可以将for循环中的while循环视为嵌套的while循环?
如何使用do while来解决相同的问题?
#include <stdio.h>
#define NUMS 3
int main() {
// insert code here...
int highVal;
int lowVal;
int i;
printf("---=== IPC Temperature Analyzer ===---\n");
for (i=1;i<=NUMS;i++){
printf("Enter the high value for day %d: ",i);
scanf("%d",&highVal);
printf("Enter the low value for day %d: ",i);
scanf("%d",&lowVal);
while((highVal < lowVal)||(highVal >= 41 || lowVal <= -41)){
printf("Incorrect values,temperature must be in the range -40 to 40,high must be greater than low\n");
i--;
highVal=1;
lowVal=0;
}
}
return 0;
}
我正在获得所需的结果,但是分配要求使用嵌套的while循环(或do while)以及for循环来提示用户。
答案 0 :(得分:0)
do {
printf("Enter the high value for day %d: ",i);
scanf("%d",&highVal);
printf("Enter the low value for day %d: ",i);
scanf("%d",&lowVal);
if((highVal < lowVal)||(highVal >= 41 || lowVal <= -41)){
printf("Incorrect values,temperature must be in the range -40 to 40,high must be greater than low\n");
i--;
highVal=1;
lowVal=0;
}
}while (i<=NUM)
答案 1 :(得分:-1)
在for循环中使用while循环可以视为嵌套的while循环吗?
不,这只是一个嵌套循环,就像是一个嵌套循环一样:
foo:
z = baz();
x++;
bar:
y++;
if(x < 100) goto bar;
if(y < 100) goto foo;
请注意,您可以通过将片段分开来将for()
转换为while
。例如,这:
for (i=initial; i<=MAX; i++) {
do_something();
}
..等效于此:
i=initial;
while (i<=MAX) {
do_something();
i++;
}
以类似的方式,您可以轻松地将while()
转换为if
和goto
(因此可以将for()
转换为if
和{{1} })。例如,先前的goto
和for()
示例与此等效:
while()