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

如何在Java中通过循环打印t1、t2、t3等变量的值

嘿,这个问题其实挺常见的~你现在的代码只是输出了t1、t2、t3这些字符串,要拿到变量的实际值,有几种更合理的实现方式,推荐优先用容器类来存储变量,毕竟Java是静态类型语言,直接靠变量名动态取值可不是常规操作,下面给你几种可行方案:

方案1:使用数组(最直接简单)

把t1、t2、t3放到数组里,循环遍历数组就能轻松拿到对应值,完全符合Java的编码习惯:

public class Teste {
    public static void main(String[] args) {
        int t1 = 5;
        int t2 = 10;
        int t3 = 30;
        // 将变量存入数组
        int[] tArray = {t1, t2, t3};
        
        for (int i = 0; i < tArray.length; i++) {
            // 可选:同时打印变量名和对应值
            System.out.println("t" + (i+1) + ": " + tArray[i]);
        }
    }
}

运行后会输出:

t1: 5
t2: 10
t3: 30

这种方式简单高效,后续要加新变量的话,直接修改数组就行,维护成本很低。

方案2:使用List集合(更灵活)

如果需要动态添加/删除变量,用List会比数组更灵活:

import java.util.ArrayList;
import java.util.List;

public class Teste {
    public static void main(String[] args) {
        int t1 = 5;
        int t2 = 10;
        int t3 = 30;
        
        List<Integer> tList = new ArrayList<>();
        tList.add(t1);
        tList.add(t2);
        tList.add(t3);
        
        for (int i = 0; i < tList.size(); i++) {
            System.out.println("t" + (i+1) + ": " + tList.get(i));
        }
    }
}

方案3:反射(不推荐用于简单场景)

如果你实在不想改动原有的变量定义方式,非要通过变量名动态取值,可以用Java的反射机制,但这种方式复杂、容易出错,性能也差,只适合特殊场景:

public class Teste {
    // 注意:反射无法获取main方法里的局部变量,所以要把变量改成类的静态成员变量
    private static int t1 = 5;
    private static int t2 = 10;
    private static int t3 = 30;

    public static void main(String[] args) {
        for (int i = 1; i < 4; i++) {
            try {
                // 通过反射获取静态变量
                java.lang.reflect.Field field = Teste.class.getDeclaredField("t" + i);
                // 私有变量需要设置可访问权限
                field.setAccessible(true);
                // 静态变量不需要实例,传null即可
                int value = field.getInt(null);
                System.out.println("t" + i + ": " + value);
            } catch (NoSuchFieldException | IllegalAccessException e) {
                e.printStackTrace();
            }
        }
    }
}

总结

优先用数组或者List,这是Java处理这类问题的常规方案;反射尽量少用,除非真的有特殊需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:42:57