在这里如果不超出范围的话,就不跳出循环,我们在这里使用的是while循环;当中有一个if..else判断,如果超出了范围使用break跳出;
然后通过if的嵌套使用来判定范围,如果在该范围的话然后输出相应的语句;
在if的语句体内使用%的方式来判断每一位上的数字,具体情况具体分析
通过char类型的一维数组来返回对应的汉字;
优化:如果是102 显示的是一百零十二
优化方案:通过一个if的判断来进行不同的输出
代码如下:
[Java] 纯文本查看 复制代码 import java.util.Scanner;
class Swap {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(true){ //死循环,
System.out.println("请输入一个数:");
int x = sc.nextInt(); //键盘录入数字
if(x>=0 & x< 1000){ //判断在该范围内,进入
if(x < 10){ //0-9的范围
System.out.println(x+"\t"+getNum(x));
}else if(x < 100){ //10-99的范围
int ge = x % 10; //取个位数
int shi = x / 10 % 10; //取十位数
System.out.println(x+"\t"+getNum(shi)+"十"+getNum(ge));
}else if(x < 1000){ //100-999的范围
int ge = x % 10; //取个位
int shi = x / 10 % 10; //取十位数
int bai = x / 100 % 10; //取百位数
if(shi==0){ //为了人性化的阅读,将十位为零的情况分了出来
System.out.println(x+"\t"+getNum(bai)+"百"+"零"+getNum(ge));
}else{
System.out.println(x+"\t"+getNum(bai)+"百"+getNum(shi)+"十"+getNum(ge));
}
}
}else{
break;
}
}
}
public static char getNum(int index){
char[] arr = {'零','一','二','三','四','五','六','七','八','九'};
return arr[index];
}
}
希望可以帮助到你,应该是可以改进的,加油
|