C++ 而语句不等于检查
C++ while statement not equal checks
我从C++年开始编码(VS 2015(。
写了一个使用while语句的小程序。
#include <iostream>
using namespace std;
int main() {
int x = 1;
int y = 2;
int z = 0;
while (x != y || z != y) {
cout << "x: " << x << "n" << "z: " << z << "n";
x++;
z++;
}
cin.get();
}
如果我正确理解了这一点,它应该以这种方式工作(但由于它进入无限循环,我想我的逻辑并不像我想象的那么正确(。
所以在我看来,while语句应该以这种方式工作。
而 X 不等于 y或 z 不等于 y。
将 +1 加到 X 和 +1 到 Z。
这样做,直到语句变为真(或至少是表达式的左侧(。
没有迭代,其中两个条件都被评估为在某个点false
,因此循环不会停止。
通过使用调试器单步执行代码,可以轻松调查该行为,并观察变量值如何更改。
循环迭代
-
x=1
,y=2
,z=0
,条件:true
-
x=2
,y=2
,z=1
,条件:true
-
x=3
,y=2
,z=2
,条件:true
。等等
条件永远不会计算为false
,并导致无限循环。考虑更改为 and 运算符以使循环有限,或者更改某些值。
while (x != y && z != y) {
输出
x: 1
z: 0
while 条件的第一个表达式在第一次迭代后变为假。第二个表达式在几次迭代后变为 false,但在第一次执行后,第一个表达式再次变为 true,并且您的程序将永远运行,因为无限循环。
循环将保持迭代,因为每当 x 和 y 值增加时,它永远不会变为 0,这等于分配给 y 的值。 (简单逻辑(
更改此语句-> while(x!=y||z!=y( into this-> while(x!=y && z!=y(你应该得到输出:X:1z:0
相关文章:
- 检查不带转换的扫描格式
- 为什么我的 c++ 程序检查不是初始化的变量?
- 为什么 std::round(sin(pi/6)) 不等于 1?
- 使字母检查不区分大小写
- 为什么 C 样式字符串的工作空指针检查不?
- 瓦尔格林德 + --泄漏检查 -> 不泄漏摘要
- 你怎么编码,如果x不等于一个数字,程序就会退出
- 如果检查不起作用,则 C++
- u张量模型输出不等于预期输出
- 虽然不等于陈述和/或差异
- 这种关系不等于定义良好的表达式吗?
- OpenGL 版本不等于支持的着色器版本
- 检查不作为单个条目的STDIN输入
- 两个 4 位位字段加起来不等于一个字节的大小 - 如何修复?
- 如果整数不等于 0,则将其减小为 1
- C 循环虽然不等于任何两个值
- vb.net单不等于c float
- C++ 而语句不等于检查
- 有没有办法检查int是否不等于数组中的所有值?(C )
- 什么是有效的检查:等于或不等于