よろしくお願いします。
下記のコードは、変数iの値を1ずつ増加させ、
iが1で割り切れるときはLOOP3から処理
iが2で割り切れるときはLOOP2から処理
iが3で割り切れるときはLOOP1から処理
と動くように作成しているコードです。
class Main { public static void main(String args[]){ int i=0; LOOP1:{ System.out.println("loop1"); while(true){ LOOP2:{ System.out.println("loop2"); while(true){ LOOP3:{ System.out.println("loop3") ; while(true){ i++; if(i%3==0){break LOOP1;} if(i%2==0){break LOOP2;} if(i%1==0){break LOOP3;} } } } } } } System.out.println("out loop1"); } }
iが1若しくは2で割り切れるときは思い通りのLoopから処理を行いますが、iが3で割り切れるときにはLOOP1抜けて、out loop1を表示してしまい、javaのThread.classにある、private exit()が呼ばれます。
どうして想定したとおりにLOOP1から処理をしないのかに関してご指導頂けますと幸いです。よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー