当我运行此代码时,我可以期待什么行为:
do while(testA) {
// do stuff
} while(testB);
它的行为会像:
do {
while(testA) {
// do stuff
}
} while(testB);
Or:
if(testA) {
do {
// do stuff
} while(testA && testB);
}
或者完全出乎意料的事情?
我问这个问题是因为我认为这是相当含糊的,对于其他搜索这个主题的人来说,not因为我懒得去测试。
它相当于你的第一个块:
do {
while(testA) {
// do stuff
}
} while(testB);
的相关部分Java语法 http://java.sun.com/docs/books/jls/first_edition/html/19.doc.html#26499解析时是:
DoStatement:
do Statement while ( Expression ) ;
Statement:
WhileStatement
WhileStatement:
while ( Expression ) Statement
Statement:
Block
Block:
{ BlockStatements_opt }
你可以看到Java编译器会将其解析为do <WhileStatement> while ( Expression ) ;
。这是解析您编写的代码的唯一有效方法。
请记住,它没有任何特殊规则来解析此构造。由于 do-while 循环的编写方式不寻常,它最终会让人们阅读起来感到困惑。在正常使用中,do-while 总是写成do { ... } while
带有明确的花括号。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)