当前位置: 代码迷 >> Java相关 >> 关于菜鸟的小疑点
  详细解决方案

关于菜鸟的小疑点

热度:3416   发布时间:2013-02-25 21:45:14.0
关于初学者的小问题!
谁帮我用代码写下一个小程序
  要求输入整数1-100,每输入一次显示一个值1-20 显示E ;21-40 D;41-60 C;61-80 B;81-100 A
而且每次输入完之后,给出友好提示--(是否继续输入),而且输入其他的报错!

如输入88 显示 A
  



  请尽量写简单点,我是初学者!谢谢!!

------解决方案--------------------------------------------------------
Java code
public static void main(String[] args){        Scanner sc = new Scanner(System.in);        while(true){            System.out.println("请输入1-100以内的数字");            String str = sc.nextLine();            if(str.matches("\\d*")){//判断是否是数字                int temp = Integer.parseInt(str);                if(temp>=1&&temp<=20){                    System.out.println("E");                } else if(temp>=21&&temp<=40){                    System.out.println("D");                } else if(temp>=41&&temp<=60){                    System.out.println("C");                } else if(temp>=61&&temp<=80){                    System.out.println("B");                } else if(temp>=81&&temp<=100){                    System.out.println("A");                } else                    System.err.println("您输入的数字不符合要求");            } else                System.err.println("请输入数字");            System.out.println("是否继续y/n");            String s = sc.nextLine();            if(s.equalsIgnoreCase("n")){                System.out.println("谢谢使用再见");                break;            }        }    }
------解决方案--------------------------------------------------------
楼上正解,补充
Java code
import java.util.Scanner;public class Test {    public static void main(String[] args) {        Scanner sc = new Scanner(System.in);        boolean flag = true;        while (flag) {            System.out.println("请输入1-100以内的数字");            try {                int score = sc.nextInt();                if (score <= 100 && score >= 1) {                    System.out.println((char) ('E' - ((score - 1)) / 20));                } else {                    System.out.println("您输入的数字超过范围");                }            } catch (Exception e) {                System.out.println("您输入的数字不符合要求");            }            sc.nextLine();            System.out.println("是否继续y/n");            String s = sc.next();            if (s.equals("y")){                flag = true;            }            else if(s.equals("n")){                System.out.println("谢谢使用再见");                break;            }        }    }}
------解决方案--------------------------------------------------------
楼上正解。。考虑相当全面
------解决方案--------------------------------------------------------
我觉得还是用switch case吧做吧,但是我觉得被耍了。每次学计算机语言都会有相似的题目。如成绩的那个
这里拿出来问显得也太……
------解决方案--------------------------------------------------------
Java code
import java.util.InputMismatchException;import java.util.Scanner;public class Test {    public static void main(String[] args) {        Scanner input = new Scanner(System.in);        while (true) {            System.out.println("请输入一个1-100之间的整数:");            try {                int a = input.nextInt();                if (a >= 1 && a <= 20) {                    System.out.println("E");                } else if (a >= 21 && a <= 40) {                    System.out.println("D");                } else if (a >= 41 && a <= 60) {                    System.out.println("C");                } else if (a >= 61 && a <= 80) {                    System.out.println("B");                } else if (a >= 81 && a <= 100) {                    System.out.println("A");                } else if (a < 1 || a > 100) {                    System.out.println("输入有误,请输入一个1-100之间的整数");                }                System.out.println("是否继续?(Y/N)");                String i = input.next();                if ("N".equals(i)) {                    System.out.println("拜拜!");                    break;                }            } catch (InputMismatchException e) {                System.out.println("请输入数字!");            } finally {                input.nextLine();            }        }    }}
  相关解决方案