将额外代码添加到for循环的增量步骤

Gri*_*tly 4 java for-loop syntactic-sugar

喜欢这里编程的学生.我已经用java编程了4年,我觉得我对语言的工作方式有了很好的理解.然而,最近我偶然发现了让我感到惊讶的事情.在考虑for循环时,我想"嘿,for循环的增量部分只是一个操作,我可以把其他东西放在那里吗?" 并最终在一些游戏后我决定试试这个:

for(int i = 0; i < 10; i++, System.out.print("foo"), System.out.print("bar")){}
Run Code Online (Sandbox Code Playgroud)

这是一个完全为空的for循环,在循环的增量步骤中打印调用.令我惊讶的是,这个循环正常运行,每次循环时都会输出foo和bar.据我所知,您可以根据需要添加任意数量的方法.

这是什么?我搜索它并没有找到任何东西.我从来没有学过这个.应该避免吗?应该用吗?为什么它甚至有效?我找不到任何显示此示例的资源.来自真正的程序员的任何意见都很高兴听到!

JB *_*zet 8

Java语言规范涵盖了这一点.提取:

如果存在ForUpdate部分,则从左到右依次计算表达式; 它们的值(如果有的话)被丢弃.

应该用吗?在我看来,没有.它使代码更难阅读,并且根本不是惯用语.