Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ while(x-)在C++;_C++_Loops - Fatal编程技术网

C++ while(x-)在C++;

C++ while(x-)在C++;,c++,loops,C++,Loops,我刚开始进行竞争性编程,一直在使用下面的循环来定义大多数实践问题中的测试用例数量 for(int i=1;i<=t;i++) { ... } for(inti=1;iYes 在检查其值时运行循环,直到t为0,因为0在逻辑上下文中等于false 因为t--是t上的后减量运算符,当检查它时,它的值将在后被修改,因此它最终将是-1。因此,循环内t的值将是:4,3,2,1,0 但是它在循环范围之外创建了一个额外的变量-因此我更喜欢for循环。while循环的主体被重复执行,直到其条件值变为fal

我刚开始进行竞争性编程,一直在使用下面的循环来定义大多数实践问题中的测试用例数量

for(int i=1;i<=t;i++)
{
...
}
for(inti=1;iYes

在检查其值时运行循环,直到
t
0
,因为
0
在逻辑上下文中等于
false

因为
t--
t
上的后减量运算符,当
检查它时,它的值将在
后被修改,因此它最终将是-1。因此,循环内
t
的值将是:4,3,2,1,0


但是它在循环范围之外创建了一个额外的变量-因此我更喜欢
for
循环。

while
循环的主体被重复执行,直到其条件值变为false(注意,如果条件最初为false,则循环根本不会执行)。条件测试在每次执行循环体之前进行。现在,假设您有:

int x = 5;
while(x--)
{
    cout << x;
}
intx=5;
而(x-)
{

cout如果没有理由不这样做,我会总是写一个这样的循环:

const int tmax = 3;
for (int t=0;t<tmax;t++){std::cout << t << std::endl;}

它的缺点是在循环外引入一个额外的变量。但是,当
tmax
不是常量且循环后不需要该值时,编写循环的最简洁的方法可能是:

while (tmax--){std::cout << tmax << std::endl;}
while(tmax--){std::cout
while(x--)
x--
的结果被评估为
false
/
0

int x = 5;
while (x--) { 
    ;// do something 
}
由于后减量,循环完成后,x的值
-1

while(x--) 
这个循环将运行“x”次,由于x--是后减量运算符,它将首先检查x的值是否为非零,然后将其减量

如果你试着在循环中打印x的值,它们会, x-1 x-2 . .
0

从0遍历到9有两种方法

第一名-01123456789 要以第一种方式进行遍历,您需要

for(x=0; x !=9; x++){
    cout << x;
}
(x=0;x!=9;x++)的
{

cout这里while循环参数中的值也可以执行布尔函数。这意味着如果在while循环参数中提供任何假值

while(Any False value/Negative Value){

While循环将中断,并且不会进一步执行
开始执行它,使用后减量,这意味着如果t=5,它将首先执行循环,然后减小它,直到t的值变为负值,即-1,条件变为FALSE,循环将终止。

两者实际上是相同的


while(t--)还将运行测试用例“t”次,因为t的值在每次迭代中都会减少,与for循环相同。这只是编写循环的另一种方式,甚至可以在解决问题时节省时间。

您不了解哪一部分?值得密切关注后缀运算符的语义及其与循环的交互:i的最终值是多少?i在循环中可见的值范围是多少?不完全相同,但几乎相同:这回答了你的问题吗?有人可能会说它运行循环直到t为-1。我添加了“在检查期间”。之后将为-1。挑剔:有人可能会说,
t
的值从未检查过。检查的是在最后一次递减之前暂时保持t的值。“当其条件变为false时,while循环退出”这是误导性的。我看到一些新手认为,只要条件变为false,循环就会终止,无论迭代代码当前在哪里执行。我认为这句话错误地重申了这一谬论。最好说,while循环在条件为的第一次迭代开始时退出是假的,或者类似的东西。@lightness,有趣。我从未见过有人以这种方式误解它,但我已经用标准中的一句稍加修改的引语修改了答案。希望它现在更清楚。@TonyD,为此添加了一条注释。
int x = 5;
while (x--) { 
    ;// do something 
}
while(x--) 
for(x=0; x !=9; x++){
    cout << x;
}
for(x=9; x !=0; x--){
    cout << x;
}
while(Any False value/Negative Value){