While循环,将变量递增到一个点
While Loop that increments a variable to a point
这个程序的目标是从用户那里获得值'y'的输入,然后将该值乘以0、1、2、3、4、5、6、7、8、9,然后打印10个结果。现在,当用户输入'y'的值时,程序只返回一个零列表。知道我哪里做错了吗?
#include <iostream>
using namespace std;
int main(){
int x;
int y;
int z;
x = 0;
z = x * y;
cout << "enter y" << endl;
cin >> y;
while (x < 10) {
cout << z << endl;
x = x + 1;
}
}
您的问题是,您实际上没有在循环内计算z
,因此它将始终是您在循环外计算的值。语句和表达式不能追溯。
但是你有一个更糟糕的问题,因为你在初始化y
之前使用了它,这会导致未定义的行为
您需要将y输入的位置更改为应该在循环内计算z之前的位置
语句z = x * y应该在while循环中才能工作。现在发生的事情是,每次它都输出相同的z值,即最初计算为x(为0)和y(由于没有初始化,因此是一些垃圾值),从而得到0
代码中出现的第一个问题是试图通过x乘以y来分配z,但y没有分配给某个值=>错误!这意味着您应该在分配z之前获得用户输入。
你可能想知道为什么你得到十个'0'的输出:在循环中,你只打印分配给z的值到控制台,但z之前已经分配了,并且在重复期间没有改变。
#include <iostream>
using namespace std;
int main(){
int x;
int y;
int z;
x = 0;
z = x * y; // y is never assigned to a value
cout << "enter y" << endl;
cin >> y; // y got assigned here!
while (x < 10) {
cout << z << endl; // z stays the same in the loop
x = x + 1;
}
}
相关文章:
- 使用一个循环与两个循环
- 如何通过一个循环将多个文件的内容分配给不同的类属性?
- 我对C++很陌生,我被困在试图做一个循环
- 该程序没有产生输出,而是卡在一个循环中,几秒钟后消失并打印被杀死?
- 有没有办法把它变成一个循环,让它更具包容性?
- 是否可以在一个循环中写入多个二进制文件
- C++在最后一个循环中排除了部分循环运算符
- 是否可以为一个循环设置多个条件
- 创建一个循环,该循环将输出大于零且小于 60(不包括 60)的所有 5 的倍数
- 如何创建一个循环,该循环检查每次迭代并在每次迭代后从头开始
- 如何在一个循环中分离两个不同的数组?
- 为什么这个do-while循环每隔一个循环只写入数组?
- 我在 c ++ 中有一个循环错误
- C :使用文件末端(CTRL Z)结束一个循环似乎打破了我程序的其余部分
- 如何将枯竭的健康转移到下一个循环中
- 一个循环,可以打印所有项目(无论链条多长时间) *指针
- 在 GtkDialog 中创建一个循环
- 我可以做一个循环,直到“std::cin”在输入缓冲区中看到“”字符
- 一个线程设置成员,而另一个循环上方 - 是此螺纹 - 不安全
- 编写一个循环,以检查变量的值与大量可能的有效值(C )的值