为标题道歉,但我找不到已经提出的类似问题。正如所暗示的,我的问题是如何实现一个计数器,它从初始值开始,向上递增,直到到达特定点,然后递减回原始值。请允许我提供一个例子,以便更好地建议展示我的意思
#include <stdio.h>
int main(void) {
int i = 0;
for(i = 0; i <= 10; i++) {
printf("i = %d\n", i);
if(i == 5) {
int j = i;
for(j = i; j >= 0; j--) {
printf("j = %d\n", j);
}
}
}
return 0;
}
运行时,程序将打印i
的值0-5,然后打印j
的值5-0,然后打印i
的值6-10。而不是这样,我只想让程序为i
打印0-5,然后为i
打印5-0 (如果需要另一个变量,则为j
)。
发布于 2018-06-21 20:02:16
您可以在建议的注释中使用两个单独的循环,如Rafalon。
如果你想要一个循环,你可以这样做(用OPs注释中的信息修改它):
int ctr_dir = 80;
int upper_value = 500;
for(int i = 0; i >= 0; i += ctr_dir)
{
printf("%d", i);
if (i > upper_value)
ctr_dir = -80;
}
发布于 2018-06-21 20:06:01
你让这件事变得不必要地复杂了。
for(int i=0; i<6; i++) // print 0 to 5
{
printf("%d\n", i);
}
for(int i=0; i<6; i++) // print 5 to 0
{
printf("%d\n", 5-i);
}
发布于 2018-06-21 20:25:29
虽然我不完全理解您编写代码的方式背后的原因,但其中缺少的成分是if
语句中的一个break
,它将退出循环,而不是继续并打印出6到10。
for(i = 0; i <= 10; i++) {
printf("i = %d\n", i);
if(i == 5) {
int j = i;
for(j = i; j >= 0; j--) {
printf("j = %d\n", j);
}
break; // Exit the loop
}
}
https://stackoverflow.com/questions/50968010
复制相似问题