for循环如何工作,特别是(;;)?

通过一些旧的公司代码,我遇到了一个for循环,看起来像这样:

for (;;) { //Some stuff } 

我试过谷歌,但找不到任何答案。 我在编程课上睡着了吗?或者这是一个不寻常的循环?

java中的for循环具有以下结构 –

 for (initialization statement; condition check; update) loop body; 

正如你所看到的,这里有四个陈述 –

  1. 初始化语句:当第一次input循环时,该语句只执行一次。 这是一个可选的语句,这意味着你可以select保持这个字段为空。 它通常用于一些初始化的目的。
  2. 有条件的检查:这个声明可能是最重要的一个。 它检查以确定某些expression式是否为真。 如果是,则循环执行继续。 您可以select将此字段保留为空,并将其评估为true
  3. 更新:这个语句列表从左到右执行,通常用于递增/递减某个variables。
  4. 循环体:循环的主体,根据条件检查的真值一次又一次执行。

基本上这就是执行的方式 – 首先,当循环首次进入时,初始化语句被执行一次。 然后执行条件检查以查看它是否评估为真。 如果是,则执行循环体,否则循环执行结束。 之后,Update语句被执行。 接下来,再次执行条件检查,如果它的计算结果为true,则再次执行循环体,然后执行update语句,然后再执行条件检查….即可获取图片。

现在关于你for( ; ; )语法。 它没有初始化语句,所以什么都不会执行。 这是有条件的检查语句也是空的,所以这意味着它的计算结果为真。 之后,循环体被执行。 接下来,由于update语句是空的,所以不执行任何操作。 然后再次执行条件检查,这将再次评估为真,然后整个过程将再次重复。

所以你看,这基本上是一个无限循环,它没有初始化语句,其条件检查总是评估为真,而没有更新语句。 这相当于 –

 while(true) { ..... } 

这是java中另一个stream行的循环结构。

当你像这样使用一个无限循环时,重要的是要注意破坏条件,因为在大多数情况下你不能让循环无限期地运行。 要打破这些循环,可以使用break语句。 结构如下 –

 if(some_condition_is_true) break; // This will cause execution to break out of its nearest loop 

要么

 if(some_condition_is_false) break; 

这是一样的:

 while(true) { //Some Stuff } 

基本上,一个无限循环的替代语法。

这些都是无限循环

 for(;;) { // endlessly } while(true) { // endlessly } do { // endlessly } while(true); 

这个循环没有防范,并且作为一个while(true)循环。 它将无限循环,直到rest。

这是一个无限循环。 不完全好的编码,因为它不直观,实际上将编译或不会引发运行时错误。 重写为while(true) { /* code */ }将更可读,以指示无限循环。

这是一个无限循环。 初始化,条件和增量语句都是可选的,所以没有任何一个,它总是会循环(除非中断或者其他一些构造与它交互)。

虽然我不确定Java的问题 ,但是这个问题解释了如何在.Net中空你的一段while (true)会被编译成完全一样的东西。 如果Java的确如此,我也不会感到惊讶。

/ * while循环

5块钱

1块巧克力= 1块钱

 while my money is greater than 1 bucks select chocolate pay 1 bucks to the shopkeeper money = money - 1 end 

回家,因为我的钱= 0雄鹿* /

 #include<stdio.h> int main(){ int money = 5; while( money >= 1){ printf("inside the shopk and selecting chocolate\n"); printf("after selecting chocolate paying 1 bucks\n"); money = money - 1 ; printf("my remaining moeny = %d\n", money); printf("\n\n"); } printf("dont have money cant go inside the shop, money = %d", money); return 0; } 

无限的钱

 while( codition ){ // condition will always true ....infinite loop statement(s) } 

请访问此video以便更好地了解https://www.youtube.com/watch?v=eqDv2wxDMJ8&t=25s