C# 无条件For循环

C# 无条件For循环,c#,C#,我遇到了这个密码 var i=Array.ConvertAll(Console.ReadLine().Split(),int.Parse); for(int x=i[0]-i[2],y=i[1]-i[3];;Console.WriteLine((0!=y?0<y--?"S":"N":"")+(0!=x?0<x--?"E":"W":""))); var i=Array.ConvertAll(Console.ReadLine().Split(),int.Parse); 对于(int x

我遇到了这个密码

var i=Array.ConvertAll(Console.ReadLine().Split(),int.Parse);
for(int x=i[0]-i[2],y=i[1]-i[3];;Console.WriteLine((0!=y?0<y--?"S":"N":"")+(0!=x?0<x--?"E":"W":"")));
var i=Array.ConvertAll(Console.ReadLine().Split(),int.Parse);

对于(int x=i[0]-i[2],y=i[1]-i[3];;Console.WriteLine((0!=y?0在编程语言中,有一些循环被写入永久运行,除非接收到某些外部条件(例如异常或用户信号)。有时,这样的“无限”循环被错误地写入

问题中的循环似乎只是无限循环的又一个例子,可能是有意写的。

循环

for(int x=i[0]-i[2],y=i[1]-i[3];;Console.WriteLine((0!=y?0<y--?"S":"N":"")+(0!=x?0<x--?"E":"W":"")));

for(int x=i[0]-i[2],y=i[1]-i[3];;Console.WriteLine((0!=y?0I)我完全是为了减少变量混乱,但是,这是非常迟钝的代码。循环声明的所有3个部分(初始值设定项、条件、迭代器)都是可选的。这意味着(;)
while(true)同义下面是下面的答案,下面三个部分都是可选的。@ LRB看起来像是从一些扭曲的C++书籍中复制的“读代码”(类似的构造可以通过C++来优雅地通过C++)。嗯,我必须再看一次,因为循环不是无限的。可能是其他东西触发了它的终止。@Sergey.quixoticaxis.Ivanov-我理解通过访问循环中的数组引用和索引避免的操作,而不是通过定义额外的变量来拼写操作的语义,但是,如果这不是em的话bed code then wft?我的280 GB笔记本电脑运行的内存比阿波罗太空任务的内存要多。嗯,我必须再看一看,因为循环不是无限的。可能是其他东西触发了它的终止。你发布的代码摘录没有显示任何退出条件,但如果你看到它发生,它当然会在那里。:-)