2016-01-17 27 views
0

我无法理解,为什么编译器只显示正在运行(永远),当我在此程序中将char更改为int时。通过改变我的意思是使用只是整数采取选项号码,因此在开关中使用int数字本身。查询char/int的相关输入

这是一个正常的字符1这是working-

public static void main(String args[]) 
    throws java.io.IOException{ 
    char option; int i=0; 

    do{ 
     if(i==1) 
      System.out.println("\nNotice: Wrong option chosen, pick again."); 
     i=1; 
     System.out.println("Help on:"); 
     System.out.println("1. if"); 
     System.out.println("2. switch"); 
     System.out.println("3. while"); 
     System.out.println("4. do-while"); 
     System.out.println("5. for"); 
     System.out.println("Pick any option for brief informatrion."); 
     option= (char)System.in.read(); 
    }while(option<'1' || option>'5'); 

    switch(option){ 
     case '1': 
      System.out.println("The If:\n"); 
      System.out.println("If(condition) statement;"); 
      System.out.println("else statement;"); 
      break; 
     case '2': 
      System.out.println("The Switch:\n"); 
      System.out.println("switch(expression){"); 
      System.out.println(" case constant:"); 
      System.out.println("  statement sequence"); 
      System.out.println(" break;"); 
      System.out.println(" // ..."); 
      System.out.println("}"); 
      break; 
     case '3': 
      System.out.println("The While:\n"); 
      System.out.println("while(condition statement;)"); 
      break; 
     case '4': 
      System.out.println("The Do-While:\n"); 
      System.out.println("do{"); 
      System.out.println(" statement;"); 
      System.out.println("}while(condition);"); 
      break; 
     case '5': 
      System.out.println("The For:\n"); 
      System.out.println("for(init; condition; iteration){"); 
      System.out.println(" statement;"); 
      System.out.println("}"); 
      break; 
    } 
} 

}

这是INT 1,它只是不断运行forver

public static void main(String args[]) 
    throws java.io.IOException{ 
    int option; int i=0; 

    do{ 
     if(i==1) 
      System.out.println("\nNotice: Wrong option chosen, pick again."); 
     i=1; 
     System.out.println("Help on:"); 
     System.out.println("1. if"); 
     System.out.println("2. switch"); 
     System.out.println("3. while"); 
     System.out.println("4. do-while"); 
     System.out.println("5. for"); 
     System.out.println("Pick any option for brief informatrion."); 
     option= System.in.read(); 
    }while(option<1 || option>5); 

    switch(option){ 
     case 1: 
      System.out.println("The If:\n"); 
      System.out.println("If(condition) statement;"); 
      System.out.println("else statement;"); 
      break; 
     case 2: 
      System.out.println("The Switch:\n"); 
      System.out.println("switch(expression){"); 
      System.out.println(" case constant:"); 
      System.out.println("  statement sequence"); 
      System.out.println(" break;"); 
      System.out.println(" // ..."); 
      System.out.println("}"); 
      break; 
     case 3: 
      System.out.println("The While:\n"); 
      System.out.println("while(condition statement;)"); 
      break; 
     case 4: 
      System.out.println("The Do-While:\n"); 
      System.out.println("do{"); 
      System.out.println(" statement;"); 
      System.out.println("}while(condition);"); 
      break; 
     case 5: 
      System.out.println("The For:\n"); 
      System.out.println("for(init; condition; iteration){"); 
      System.out.println(" statement;"); 
      System.out.println("}"); 
      break; 
    } 
} 

}

回答