对于仅带条件的循环
For loop with condition only
有人可以解释一下for(;A--;)循环工作。它没有任何增量,所以它不应该永远运行吗?
int main(){
int A, B;
cout << "Anna tx84htien mx84x84rx84: "; //Give ammount of stars:
cin >>A;
cout << endl;
for(; A--;){
for(B = 0; A >= B; B++){
cout << "* ";
}
cout << endl;
}
return 0;
}
只要for
循环的条件为真,它就会运行。A--
相当于A-- != 0
,所以这是它将运行多长时间。
很高兴知道的一件事是,for
循环可以包含的不仅仅是增量操作。通常,它类似于++i
,但这不是必需的。不过,在学校里,你可能不知道for
循环到底有多一般。
A-- 位于条件部分。只要 A != 0,循环就会执行。由于在变量之后找到了 -- 运算符,因此在计算 A 的值后将执行递减。前任:
int A = 10;
//This loop will output: 9 8 7 6 5 4 3 2 1 0
for(;A--;){
std::cout<<A<<" ";
}
A = 10;
//This loop will output: 9 8 7 6 5 4 3 2 1
for(;--A;){
std::cout<<A<<" ";
}
在 C/C++ 中,如果条件不为零,则在任何意义上都是为真的。让我举个例子来澄清这一点,
#include<iostream>
using namespace std;
int main()
{
int a=5, b=-5;
while(a)
{
cout<<"# ";
a--;
}
cout<<"n";
while(b)
{
cout<<"* ";
b++;
}
return 0;
}
代码的输出将是:
# # # # #
* * * * *
如果你研究一下,在"a"while 循环中,条件是正的,它会递减,直到值为"0"。在值为 0 之前,条件称为 true,并且控制流执行 while 循环中的语句。
在 'b' while 循环中,可以清楚地看到,即使 'b' 为负数,while 循环中的语句仍会执行,直到 'b' 的值递增到 0。
可见,每个非零项都被认为是一个真条件,而一个0(零(被认为是一个假条件。错误地认为(只有(1是真的,0是假的。
循环for
语法为for(declaration;condition;iteration)
。如果缺少其中一个语句,循环仍将继续运行。只要条件为真,for loop
就有效。控制流,首先是声明,然后是检查条件。如果条件为 true,则它在循环范围内执行语句。最后,控件来到迭代语句并再次检查条件。在运行时,如果在任何时候循环条件被证明是false
,则控件终止程序或在循环之后执行语句。
它会一直持续到A
达到 0,并且在最初>= 0
A
的情况下将停止,否则,正如 Eric 指出的那样,行为是未定义的,因为会发生溢出并且它可能以几种不同的方式结束。
- 在循环条件 i<sqrtN(预先计算)和 i*i<N 中,C++哪个更有效?
- Leetcode C++用于循环条件
- 在循环条件中调用const vector size()似乎缺少优化
- getline() 在 while 循环条件中如何计算为真或假?
- for 循环条件
- while 循环条件 c++ 中的","有什么用?
- GDB / C++ - 根据循环条件将多个变量记录到输出文件中
- 是否可以在 for 循环条件括号内使用三个分号?
- C++线程退出循环条件
- C 在循环条件下忽略
- 字符在循环条件下执行
- 有没有办法将擦除-删除成语与其他循环条件一起使用
- 我的while循环条件没有像我预期的那样评估它们
- C++ for 循环条件
- 虽然循环条件不起作用
- 虽然循环条件不起作用
- 线程未正确结束:它忽略失败的循环条件
- C++比较两个字符来验证循环条件
- 针对外部标志(cpp)的循环条件的更改
- 引用、逻辑运算符和循环条件