java – while循环中标记的continue语句
以下简单示例会导致编译时错误.但目前尚不清楚为什么.
public static void main (String[] args) throws java.lang.Exception { int i = 0; d: { System.out.println("d"); } while(i < 10){ i++; continue d; } } – 和 – public static void main (String[] args) throws java.lang.Exception { int i = 0; d: { System.out.println("d"); while(i < 10){ i++; continue d; } } } DEMO 但以下工作正常: public static void main (String[] args) throws java.lang.Exception { int i = 0; d: while(i < 10){ { System.out.println("d"); } i++; continue d; } } 它是否允许将控制转移到while,for或do语句?它没有在JLS中说.实际上说的是:
解决方法
继续意味着转到循环的开始.因此,当您继续使用标签时,标签必须处于循环状态. (这不是goto声明……)
实际上,确实如此. 这是JLS 14.6(Java 8修订版)真正说的:
(用原文加粗!) 粗体句子说标签所附的声明(称为“继续目标”)必须是某种循环声明. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |