返回列表 发帖

《Java123》第99页习题4的代码问题

代码如下,运行基本正确,但是,如果输入的数字小于0了怎么办?哪位帮我看下注释掉的那几行应当如何处理才能不和开头的 int n = 0相冲突。代码如下:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class ChinaNumberSuchabiao {
        public static void main(String[] args)throws IOException {
                int n=0;
                while (n <= 10){
                BufferedReader reader = new BufferedReader(new
                                InputStreamReader(System.in));
                System.out.println("请输入一个0到10的数字并按ENTER键,以查找对应的中文数字:");
                 n = Integer.parseInt(reader.readLine());
                switch (n) {
                case 0 :
                        System.out.println("您输入的数字是:" + n + "\t" + "对应的中文数字是:零");
                        break ;
                case 1 :
                        System.out.println("您输入的数字是:" + n + "\t" + "对应的中文数字是:壹");
                        break ;
                case 2 :
                        System.out.println("您输入的数字是:" + n + "\t" + "对应的中文数字是:贰");
                        break ;
                case 3 :
                        System.out.println("您输入的数字是:" + n + "\t" + "对应的中文数字是:叁");
                        break ;
                case 4 :
                        System.out.println("您输入的数字是:" + n + "\t" + "对应的中文数字是:肆");
                        break ;
                case 5 :
                        System.out.println("您输入的数字是:" + n + "\t" + "对应的中文数字是:伍");
                        break ;
                case 6 :
                        System.out.println("您输入的数字是:" + n + "\t" + "对应的中文数字是:陆");
                        break ;
                case 7 :
                        System.out.println("您输入的数字是:" + n + "\t" + "对应的中文数字是:柒");
                        break ;
                case 8 :
                        System.out.println("您输入的数字是:" + n + "\t" + "对应的中文数字是:捌");
                        break ;
                case 9 :
                        System.out.println("您输入的数字是:" + n + "\t" + "对应的中文数字是:玖");
                        break ;
                case 10 :
                        System.out.println("您输入的数字是:" + n + "\t" + "对应的中文数字是:壹拾");
                        break ;
                }
System.out.println("\r");
        }
                //if (n < 0 ){
                //System.out.println("您输入的数字是负数,其中文数字可以通过 负 字与零到拾的中文数字组合而成,请重新运行本程序进行查找。");
                //}
                if ( n > 10)
                        System.out.println("您输入的数字大于10,其中文数字可以通过零到拾的中文数字组合而成,请重新运行本程序进行查找。");       
                }
       
}
分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友

如果输入小于0的数字,你可以通过加一个default来做。只要不满足前面的条件,一律执行default的内容。

TOP

哦,是,谢谢你,我试试~:handshake

TOP

2# fwbook


谢谢,通过引入default:并将大于10的情况使用了if else,再调整下语句的顺序,这个程序就比较全面了,下面附上修改后的源代码,如有不足之处,还请不吝以教~!谢谢~!

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class ChinaNumberSuchabiao {
        public static void main(String[] args)throws IOException {
                int n=0;
                while (n <= 10){
                BufferedReader reader = new BufferedReader(new
                                InputStreamReader(System.in));
                System.out.println("请输入一个0到10的数字并按ENTER键,以查找对应的中文数字:");
                 n = Integer.parseInt(reader.readLine());
                 if ( n > 10)
                                System.out.println("您输入的数字大于10,其中文数字可以通过零到拾的中文数字组合而成,请重新运行本程序进行查找。");
                 else
               
                 switch (n) {
                case 0 :
                        System.out.println("您输入的数字是:" + n + "\t" + "对应的中文数字是:零");
                        break ;
                case 1 :
                        System.out.println("您输入的数字是:" + n + "\t" + "对应的中文数字是:壹");
                        break ;
                case 2 :
                        System.out.println("您输入的数字是:" + n + "\t" + "对应的中文数字是:贰");
                        break ;
                case 3 :
                        System.out.println("您输入的数字是:" + n + "\t" + "对应的中文数字是:叁");
                        break ;
                case 4 :
                        System.out.println("您输入的数字是:" + n + "\t" + "对应的中文数字是:肆");
                        break ;
                case 5 :
                        System.out.println("您输入的数字是:" + n + "\t" + "对应的中文数字是:伍");
                        break ;
                case 6 :
                        System.out.println("您输入的数字是:" + n + "\t" + "对应的中文数字是:陆");
                        break ;
                case 7 :
                        System.out.println("您输入的数字是:" + n + "\t" + "对应的中文数字是:柒");
                        break ;
                case 8 :
                        System.out.println("您输入的数字是:" + n + "\t" + "对应的中文数字是:捌");
                        break ;
                case 9 :
                        System.out.println("您输入的数字是:" + n + "\t" + "对应的中文数字是:玖");
                        break ;
                case 10 :
                        System.out.println("您输入的数字是:" + n + "\t" + "对应的中文数字是:壹拾");
                        break ;
                default:
                        System.out.println("您输入的数字是负数,其中文数字可以通过 负 字与零到拾的中文数字组合而成,请重新运行本程序进行查找。");
                break ;
                }
System.out.println("\r");
        }
               
               
                }
       
}

TOP

4# wangqing


这样确实完善了。

TOP

返回列表