程序中i值其实变化为1.2.1.2......,因为执行了i=i+1后,程序回到执行int i=1.每次if(1==many)到达不了break这里.
这时while(many>0)永远是真,程序就进入死循环了.除非你输入的是1.
可以这样,将int i=1放在while(many>0)之前即可.
你的int i=1;不能在while循环内定义,否则你每次循环i都被重置为1,那是不可能满足i==many这个条件的 所以是死循环。
要把int i定义到while循环之外
/*
你想看多少次?5
问君能有几多愁
问君能有几多愁
问君能有几多愁
问君能有几多愁
问君能有几多愁
程序结束
Press any key to continue
*/
#include
int main() {
int many;
std::cout<<"你想看多少次?";
std::cin>>many;
while(many--) {
std::cout<<"\n问君能有几多愁\n";
}
std::cout<<"\n程序结束\n";
return 0;
}
按照你的意思 你应该把int i = 1;放在while循环外面
#include
int main()
{
int many;
int i=1;
std::cout<<"你想看多少次?";
std::cin>>many;
while(many>0)
{
std::cout<<"\n问君能有几多愁\n";
if(i==many)
break;
i=i+1;
}
std::cout<<"\n程序结束\n";
return 0;
}
怎么会这样写?里面的i变量事多此一举/
int many;
std::cout<<"你想看多少次?";
std::cin>>many;
while(many>0)
{
std::cout<<"\n问君能有几多愁\n";
many--;
}
std::cout<<"重复拉"<