我无法在我想要的时候让我的 while 循环停止
I can't make my while loop stop when I want
编写一个 while 循环,打印userNum
除以 2(整数除法),直到达到 1。每个数字后面跟一个空格。userNum
= 20 的示例输出:20 10 5 2 1
#include <iostream>
using namespace std;
int main()
{
int userNum = 0;
userNum = 20;
cout << userNum << " ";
while (userNum > 1)
{
userNum = userNum/2;
cout << userNum << " ";
}
cout << endl;
return 0;
}
它正确划分,直到我到达 0,在那里它给我 0 而不是终止。我做错了什么?
谢谢!
您发布的代码的行为与您期望的一样。
我建议稍微更改代码作为良好做法。
而不是:
cout << userNum << " ";
while (userNum > 0)
{
userNum = userNum/2;
cout << userNum << " ";
}
用:
while (userNum > 1)
{
cout << userNum << " ";
userNum = userNum/2;
}
一般原则是:
while ( <conditional> )
{
// Use the data
// Change the data as the last operation in the loop.
}
for
循环为这些提供了自然的占位符。
for ( <initialize data>; <conditional>; <update data for next iteration> )
{
// Use the data
}
如果您要切换到使用我推荐的for
循环,您的代码将是:
for ( userNum = 20; userNum > 0; userNum /= 2 )
{
cout << userNum << " ";
}
我尝试了所有这些选项,但它们都不适用于其他测试,因此我进行了一些修改。这非常适合 zybook。
#include <iostream>
using namespace std;
int main() {
int userNum = 0;
userNum = 40;
cin>>userNum;
while(userNum>1)
{
userNum=userNum/2;
cout<<userNum<<" ";
}
cout << endl;
return 0;
}
http://ideone.com/SvU8z3
#include <iostream>
using namespace std;
int main()
{
int userNum = 20;
while (userNum > 0)
{
cout << userNum << " ";
userNum = userNum/2;
}
cout << endl;
return 0;
}
#include <iostream>
using namespace std;
int main() {
int userNum;
cin >> userNum;
while (userNum >= 4) {
userNum /= 4;
cout<<userNum<<" ";
}
cout << endl;
return 0;
}
相关文章:
- 为什么我的 while 函数没有终止?
- 为什么我的 while 循环对于特定输入中断,而对于其他输入工作正常?
- 为什么我的 while 循环永远不会在 C++ 中的数字猜测游戏中结束?
- 我的 if 语句打印在我的 while 循环中的每个 if 语句上,无论它是否为假
- 如何调试我的 while 循环C++程序?
- 为什么我的 while 语句没有结束?
- 为什么我的 While 循环中不断出现"expected expression error"?
- 为什么我的 while 循环函数只返回"1"?
- 第一次执行后我的while循环周围出现错误,不再要求输入
- 我的while循环条件没有像我预期的那样评估它们
- 我的 while 循环不会在条件下停止
- 我没有正确编程我的while循环
- 在我的switch语句完全执行之前,我的while循环进入第二次迭代,我用c ++编码
- 如何结束我的while循环
- 为什么我的 while 循环会导致无限输出
- 我无法在我想要的时候让我的 while 循环停止
- 我的while循环似乎忽略了我的getline
- 我的while循环过早退出
- 为什么我的"while"条件没有得到满足?
- 我的while程序溢出了?我做错了什么?