You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中如何为同类型就餐人员创建独立变量?点餐场景难题

解决多就餐人员的变量存储问题

我正试图解决如何创建新变量的问题。当输入为2(代表2名青少年)且两人均点餐时,总金额仅会保留最后一名青少年的点餐金额,因为所有青少年的点餐金额都被存储在同一个变量中。我想了解在餐厅有多名同类型就餐人员的情况下,如何创建新的独立变量。相关代码片段如下:

import java.util.Scanner; 
public class Lab9 { 
    public static void main(String[] args) { 
        Scanner input = new Scanner(System.in); 
        // Variables and code logic here...
    }
}

嘿,我完全get到你的问题了——你现在用单个变量存所有青少年的点餐金额,每次新输入都会覆盖之前的值,最后自然只剩最后一个人的金额。其实根本不用手动创建一堆独立变量(那样太死板,人数变了还要改代码),咱们用数组或者集合来存储多个人的金额就好,这是处理这类重复数据的标准操作。

方案1:用数组实现(适合提前知道人数的场景)

如果能先获取就餐人数,直接创建对应长度的数组,就能逐个存储每个人的金额:

import java.util.Scanner; 
public class Lab9 { 
    public static void main(String[] args) { 
        Scanner input = new Scanner(System.in); 
        
        // 先获取青少年人数
        System.out.print("请输入青少年人数:");
        int teenCount = input.nextInt();
        
        // 创建对应长度的数组,专门存每个青少年的点餐金额
        double[] teenAmounts = new double[teenCount];
        
        // 循环输入每个青少年的金额
        for (int i = 0; i < teenCount; i++) {
            System.out.print("请输入第" + (i+1) + "名青少年的点餐金额:");
            teenAmounts[i] = input.nextDouble();
        }
        
        // 计算总金额
        double total = 0;
        for (double amount : teenAmounts) {
            total += amount;
        }
        
        System.out.println("所有青少年的点餐总金额为:" + total);
        input.close();
    }
}

方案2:用ArrayList实现(更灵活的动态场景)

如果人数不确定,或者后续可能临时添加就餐人员,用ArrayList会更方便——它的长度可以动态调整,不用提前固定:

import java.util.Scanner;
import java.util.ArrayList;
public class Lab9 { 
    public static void main(String[] args) { 
        Scanner input = new Scanner(System.in); 
        ArrayList<Double> teenAmounts = new ArrayList<>();
        
        // 先获取青少年人数,也可以改成循环输入直到用户主动结束
        System.out.print("请输入青少年人数:");
        int teenCount = input.nextInt();
        
        for (int i = 0; i < teenCount; i++) {
            System.out.print("请输入第" + (i+1) + "名青少年的点餐金额:");
            double amount = input.nextDouble();
            teenAmounts.add(amount); // 把金额添加到集合里
        }
        
        // 计算总金额
        double total = 0;
        for (double amount : teenAmounts) {
            total += amount;
        }
        
        System.out.println("所有青少年的点餐总金额为:" + total);
        input.close();
    }
}

为啥不推荐手动创建多个独立变量?

比如你写teen1Amount、teen2Amount...这类变量,一旦人数变成3、5甚至更多,你就得手动加新变量、改计算逻辑,代码会变得臃肿又难维护。用数组或集合的话,不管人数多少,核心逻辑都不用大改,扩展性强太多啦。

内容的提问来源于stack exchange,提问作者MGA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 07:03:32