日期:2014-05-20  浏览次数:20705 次

关于初学者的小问题!
谁帮我用代码写下一个小程序
  要求输入整数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();
            }

        }
    }
}