【问题标题】:How to jump to the beginning of the code? [closed]如何跳转到代码的开头? [关闭]
【发布时间】:2014-02-13 00:09:15
【问题描述】:

我正在制作一个要求用户输入的程序。如果用户输入输入,它将显示为输入,然后完成程序。如何让程序从头开始? 我的代码是这样构建的:(只显示构建而不是代码本身)

please enter user input:
while (x != y)
{ 
    if ( x == y )
    { 
        printf("printing something");
    }
    else if (x > y )
    {
        printf("printing something");
    }
    else
    {
        printf("printing something");
    }
}

【问题讨论】:

  • 将输入放在一个while循环中
  • 不能因为 x 是 num(输入),而 num 仅在 while 循环之后定义
  • 所以围绕它添加另一个while循环
  • 那会说什么?而(真)?已经试过了。

标签: c loops while-loop


【解决方案1】:
int main(void)
{
    int num = 0;
    while( 1 )
    {
        printf("This is a game to find the password. Start this game by trying to guess it with numbers from 1 - 100. The program will tell you if you are close or not.\n");

        num = 0; // reset the num back to zero
        while (num != 65)
        {
            printf("please enter a number:\n");
            num = GetInt();

            if (num == 65)
            {
                printf("Nice!!\n");
                break; // exit the while (num != 65)
            }
            else if (num > 50 && num < 60 )
            {
                printf("almost there! go higher!\n");

            }
        }
    }
}

【讨论】:

  • 导致无限循环。
  • 好吧。你需要某种方式来打破循环。你需要一个条件,一旦满足它就会跳出循环。
  • 会发生什么,它会打印出我想要的,但它不会进入程序的开头......
  • 程序开始的意义在哪里???就在while循环之前?
  • 我知道我告诉过你。你只希望它回到启动程序一次??
【解决方案2】:

如果你不介意使用goto:

HERE: please enter user input:
while (x!= y)
{ 
    if ( x == y )
    { 
        printf("printing something");
    }
    else if (x > y )
    {
        printf("printing something");
    }
    else
    {
        printf("printing something");
    }
    goto HERE;
}

然而,在这个例子中,你可以看到你永远不会中断。您必须谨慎使用
goto

编辑:

上面的代码有错误。为了进入while循环x!=y。但是后来
你检查x==y,它总是false。所以:

HERE: please enter user input:  
while (true)
{ 
    if ( x == y )
    { 
        printf("printing something");
        break;
    }
    else if (x > y )
    {
        printf("printing something");
    }
    else
    {
        printf("printing something");
    }
    goto HERE;
}

编辑 2:

你只有 一个 while 循环

int num;

//your code here

HERE:
num = GetInt();
while(true)
{
   if (num == 65)
   {
       printf("Nice!!\n");
       break;
   }
   else if (num > 50 && num < 60 )

   }
   else if (something )
       something
   }
   .
   .
   .
   else{
       something
   }
   goto HERE;
}

变态

【讨论】:

  • 返回一个无限循环:(
  • 你希望你的程序什么时候结束?
  • 当用户输入正确的数字时。查看完整代码:pastebin.com/iE8W9UnJ(不要关注输入类型,它们被修改了。)
  • 我试过......它也没有那样工作。看我的完整代码。pastebin.com/ZLGrAMGQ
  • 非常感谢!!!!!!!!!!!!!!!
猜你喜欢
  • 2016-01-19
  • 1970-01-01
  • 1970-01-01
  • 2011-01-07
  • 2014-09-21
  • 1970-01-01
  • 1970-01-01
  • 2015-01-08
  • 1970-01-01
相关资源
最近更新 更多