为什么我得到第92行是无法访问的语句的错误?基本上我要做的是跳过一些代码,如21-22-23 ...如果用户输入类似11-12-13的东西......
import java.util.*;
public class Words {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out. print ("\n\tINTEGER TO WORDS") ;
System.out.print ("\n\nEnter a number between 1 and 9999: ") ;
int num = s.nextInt();
System.out. print ("\nThe answer is: ") ;
int tho = (num - (num % 1000)) ;
int h = (num - tho - (num % 100)) ;
int t = (num - tho - h - (num % 10)) ;
int o = (num - tho - h - t) ;
switch (tho)
{
case 9000:
System.out.print ("Nine Thousand ") ;
break ;
case 8000:
System.out.print ("Eight Thousand ") ;
break ;
case 7000:
System.out.print ("Seven Thousand ") ;
break ;
case 6000:
System.out.print ("Six Thousand ") ;
break ;
case 5000:
System.out.print ("Five Thousand ") ;
break ;
case 4000:
System.out.print ("Four Thousand ") ;
break ;
case 3000:
System.out.print ("Three Thousand ") ;
break ;
case 2000:
System.out.print ("Two Thousand ") ;
break ;
case 1000:
System.out.print ("One Thousand ") ;
break ;
}
switch (h)
{
case 100:
System.out.print ("One Hundred ") ;
break ;
case 200:
System.out.print ("Two Hundred ") ;
break ;
case 300:
System.out.print ("Three Hundred ") ;
break ;
case 400:
System.out.print ("Four Hundred ") ;
break ;
case 500:
System.out.print ("Five Hundred ") ;
break ;
case 600:
System.out.print ("Six Hundred ") ;
break ;
case 700:
System.out.print ("Seven Hundred ") ;
break ;
case 800:
System.out.print ("Eight Hundred ") ;
break ;
case 900:
System.out.print ("Nine Hundred ") ;
break ;
}
switch (t)
{
case 10:
System.out.print ("Ten ") ;
break ;
**switch (o)**
{
case 11:
System.out.print ("Eleven ") ;
break ;
case 12:
System.out.print ("Twelve ") ;
break ;
case 13:
System.out.print ("Thirteen ") ;
break ;
case 14:
System.out.print ("Fourteen ") ;
break ;
case 15:
System.out.print ("Fifteen ") ;
break ;
case 16:
System.out.print ("Sixteen ") ;
break ;
case 17:
System.out.print ("Seventeen ") ;
break ;
case 18:
System.out.print ("Eighteen ") ;
break ;
case 19:
System.out.print ("Nineteen ") ;
break ;
}
case 20:
System.out.print ("Twenty ") ;
break ;
case 30:
System.out.print ("Thirty") ;
break ;
case 40:
System.out.print ("Fourty ") ;
break ;
case 50 :
System.out.print ("Fifty ") ;
break ;
case 60:
System.out.print ("Sixty ") ;
break ;
case 70:
System.out.print ("Seventy ") ;
break ;
case 80:
System.out.print ("Eighty ") ;
break ;
case 90:
System.out.print ("Ninenty ") ;
break ;
}
switch (o)
{
case 1:
System.out.print ("One ") ;
break ;
case 2:
System.out.print ("Two ") ;
break ;
case 3:
System.out.print ("Three ") ;
break ;
case 4:
System.out.print ("Four ") ;
break ;
case 5:
System.out.print ("Five ");
break ;
case 6:
System.out.print ("Six ");
break ;
case 7:
System.out.print ("Seven ");
break ;
case 8:
System.out.print ("Eight ");
break ;
case 9:
System.out.print ("Nine ");
break ;
}
System.out. print ("\n") ;
}
}
Run Code Online (Sandbox Code Playgroud)
由于break;第88行的声明:
case 10:
System.out.print ("Ten ") ;
break ; // <-- problem is here
**switch (o)**
{
case 11:
System.out.print ("Eleven ") ;
Run Code Online (Sandbox Code Playgroud)
你告诉程序"跳过这个表达式下面的所有内容,直到你不在switch语句中",这break是无条件的,这意味着它总是在里面发生case 10.编译器足够聪明,可以识别出这意味着switch(o)永远不会执行,因此它会提醒您"无法访问代码".