Javaはワカラねぇ

ほそぼそと続けているJavaのお勉強。こんなことが今分からない。

下のコードはコンパイルエラーになって、

class Sample{
public static void main(String[] args){
for( int i = 0 ; ; i++ ){
switch(i){
case 0: break;
case 1: System.out.println("one");
case 2: System.out.println("two");
case 3: System.out.println("three");
}
}
System.out.println("done");
}
}

下のコードは、無限ループに陥る。

class Sample{
public static void main(String args[]){
int i=0;
int j=5;
myLael:
for(;;){
if(i>j){
break myLabel;
}
}
System.out.println("i="+i+"j="+j);
}
}

違いがよく分からん。