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::coutwhile(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){