鱼C论坛

 找回密码
 立即注册
查看: 3701|回复: 1

[已解决]小白求助 如何用array和enum写下面这个程序

[复制链接]
匿名鱼油
匿名鱼油  发表于 2021-9-13 22:37:11 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 匿名 于 2021-9-15 11:56 编辑

程序是下面的样子
命令不区分大小写
列表不包含100个值
import java.util.Scanner;

public class ArrayEnum {
    public static void main(String[] args){
        //填写程序
        final Scanner scanner = new Scanner(System.in);
        
        while(ture){
            final Command command = getCommand(scanner); //Command is enum
            if(command == Command.QUIT){
                System.out.println("Bye!");
                break;
            }
            switch (command){
                case ADD:
                    final int newValue = getValue(scanner);
                    value[index] = newValue;
                    index++;
                    break;
                case LIST:
                    printList(values,index);
                    break;
                case SUM:
                    System.out.println(getSum(value,index));
                    break;
                //填写程序
            }
        }
        scanner.close();
    }
   //填写程序
}
最后的输出结果
ADD 10
add20
LIST
10 20
Sum
30
Add 30
suM
60
Max
30
Min
10
Summ
Invail Command
list
10 20 30 
Quit
Bye!
最佳答案
2021-9-15 11:26:38
枚举类:
package excel;

public enum Command {
    ADD,LIST,SUM,QUIT,MAX,MIN;
}
代码:
package excel;

import java.util.Arrays;
import java.util.Scanner;

/**
 * 使用array和enum填写代码
 */
public class Test {
    static int index = 0;
    public static void main(String[] args) {
        final Scanner scanner = new Scanner(System.in);
        int[] value = new int[100];

        while (true) {
            final Command command = getCommand(scanner); //Command is enum
            if (command == Command.QUIT) {
                System.out.println("Bye!");
                break;
            }
            switch (command) {
                case ADD:
                    final int newValue = getValue(scanner);
                    value[index] = newValue;
                    index++;
                    break;
                case LIST:
                    printList(value.clone(), index);
                    break;
                case SUM:
                    System.out.println(getSum(value.clone(), index));
                    break;
                case MAX:
                    System.out.println(getMax(value.clone()));
                    break;
                case MIN:
                    System.out.println(getMin(value.clone()));
                    break;
                default:
                    break;
            }
        }
        scanner.close();
    }

    private static int getMax(int[] value) {
        Arrays.sort(value);
        return value[value.length-1];
    }
    private static int getMin(int[] value) {
        Arrays.sort(value);
        return value[100-index];
    }

    private static int getSum(int[] value, int index) {
        int sum = 0;
        for (int i = 0; i < index; i++) {
            sum += value[i];
        }
        return sum;
    }

    private static void printList(int[] value, int index) {
        for (int i = 0; i < index; i++) {
            System.out.print(value[i]+" ");
        }
        System.out.println();
    }

    private static int getValue(Scanner scanner) {
        return scanner.nextInt();
    }

    private static Command getCommand(Scanner scanner) {
        String next = scanner.next();
        String s = next.toUpperCase();
        switch (s) {
            case "ADD":
                return Command.ADD;
            case "LIST":
                return Command.LIST;
            case "SUM":
                return Command.SUM;
            case "QUIT":
                return Command.QUIT;
            case "MAX":
                return Command.MAX;
            case "MIN":
                return Command.MIN;
            default:
                break;
        }
        return null;
    }
}
效果图:
图片2.png
屏幕截图 2021-09-13 233651.png
回复

使用道具 举报

发表于 2021-9-15 11:26:38 | 显示全部楼层    本楼为最佳答案   
枚举类:
package excel;

public enum Command {
    ADD,LIST,SUM,QUIT,MAX,MIN;
}
代码:
package excel;

import java.util.Arrays;
import java.util.Scanner;

/**
 * 使用array和enum填写代码
 */
public class Test {
    static int index = 0;
    public static void main(String[] args) {
        final Scanner scanner = new Scanner(System.in);
        int[] value = new int[100];

        while (true) {
            final Command command = getCommand(scanner); //Command is enum
            if (command == Command.QUIT) {
                System.out.println("Bye!");
                break;
            }
            switch (command) {
                case ADD:
                    final int newValue = getValue(scanner);
                    value[index] = newValue;
                    index++;
                    break;
                case LIST:
                    printList(value.clone(), index);
                    break;
                case SUM:
                    System.out.println(getSum(value.clone(), index));
                    break;
                case MAX:
                    System.out.println(getMax(value.clone()));
                    break;
                case MIN:
                    System.out.println(getMin(value.clone()));
                    break;
                default:
                    break;
            }
        }
        scanner.close();
    }

    private static int getMax(int[] value) {
        Arrays.sort(value);
        return value[value.length-1];
    }
    private static int getMin(int[] value) {
        Arrays.sort(value);
        return value[100-index];
    }

    private static int getSum(int[] value, int index) {
        int sum = 0;
        for (int i = 0; i < index; i++) {
            sum += value[i];
        }
        return sum;
    }

    private static void printList(int[] value, int index) {
        for (int i = 0; i < index; i++) {
            System.out.print(value[i]+" ");
        }
        System.out.println();
    }

    private static int getValue(Scanner scanner) {
        return scanner.nextInt();
    }

    private static Command getCommand(Scanner scanner) {
        String next = scanner.next();
        String s = next.toUpperCase();
        switch (s) {
            case "ADD":
                return Command.ADD;
            case "LIST":
                return Command.LIST;
            case "SUM":
                return Command.SUM;
            case "QUIT":
                return Command.QUIT;
            case "MAX":
                return Command.MAX;
            case "MIN":
                return Command.MIN;
            default:
                break;
        }
        return null;
    }
}
效果图:
图片2.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 18:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表