C++ 使用C+;中的while循环未通过测试用例+;

C++ 使用C+;中的while循环未通过测试用例+;,c++,while-loop,testcase,C++,While Loop,Testcase,我的需要: #include<iostream> using namespace std; int main() { int input=1; int i= 0; string name; while(input<=i) { cin>>name; if(name=="42") { break; } else

我的需要:

#include<iostream>
using namespace std;
int main()
{
    int input=1;
    int i= 0;
    string name;
    while(input<=i)
    {
        cin>>name;
        if(name=="42")
        {
             break;
        }
        else
        {
           cout<<"Hello "<<name<<"!";
           i++;
        }

    }
    return 0;
}
使用while循环问候尽可能多的stdin上可用的名称。读取字符串“42”作为名称时停止

我的编码:

#include<iostream>
using namespace std;
int main()
{
    int input=1;
    int i= 0;
    string name;
    while(input<=i)
    {
        cin>>name;
        if(name=="42")
        {
             break;
        }
        else
        {
           cout<<"Hello "<<name<<"!";
           i++;
        }

    }
    return 0;
}
#包括
使用名称空间std;
int main()
{
int输入=1;
int i=0;
字符串名;
while(输入>名称);
如果(名称=“42”)
{
打破
}
其他的
{

cout您的代码在
时永远不会输入
,因为条件总是
false

就用,

....
while(1)
{
....
这将无限期地运行您的循环,并在遇到42时中断。

您的循环有缺陷

int input=1;
int i= 0;
string name;
while(input<=i)
int输入=1;
int i=0;
字符串名;

而(input当您通过42时,您的代码甚至不会运行,因为
input
大于
i

while(input<=i) // input = 1, i = 0, 1 > 0

您的代码存在以下问题:


  • 它不会进入while循环,因为输入被初始化为1,而i被初始化为0(输入首先,对不起我的基本问题。循环没有启动。因为
    输入
    是1,
    i
    是0。但是我给出的条件是
    输入。你确定你的代码进入了循环吗?你从来没有在
    循环时输入
    。循环中的条件总是错误的。为什么不先使用调试器呢?我得到了输出,先生。我需要将1置于while状态。谢谢您的回复
    
     #include<iostream>
    using namespace std;
    int main()
    {
    int input=0;
    int i= 1;
    string name;
    while(input<=i)
    {
        cin>>name;
        if(name=="42")
        {
             break;
        }
        else
        {
           cout<<"Hello "<<name<<"!";
           i++;
        }
    
    }
    return 0;
    }