Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有没有办法循环使用变量名?_Java_Loops_Variables_For Loop - Fatal编程技术网

Java 有没有办法循环使用变量名?

Java 有没有办法循环使用变量名?,java,loops,variables,for-loop,Java,Loops,Variables,For Loop,例如,我有以下变量: Var1,Var2,Var3,Var4,Var5-总共5个变量。 所有这些都具有唯一的数据,我希望使用for循环遍历它们 //String Var1 = something, Var2 = something etc.. for (int i = 1; i <= 5; i++) { Var(i) = "something else"; } //i.e I change Var(1), Var(2) etc.. to something else respectivel

例如,我有以下变量: Var1,Var2,Var3,Var4,Var5-总共5个变量。 所有这些都具有唯一的数据,我希望使用for循环遍历它们

//String Var1 = something, Var2 = something etc..
for (int i = 1; i <= 5; i++)
{
Var(i) = "something else";
}
//i.e I change Var(1), Var(2) etc.. to something else respectively.
//字符串Var1=something,Var2=something等。。
对于(int i=1;i您不能循环(本地)变量。您可以使用或,然后循环其元素:

for (Object item : myListOfObjects) {
    // do the processing
}

如果变量被定义为类的成员,则可以通过反射来实现。对于方法参数或局部变量,这是不可能的。类似于此:

Class currentClass = getClass();
Field[] fields = currentClass.getFields();
for (Field f : fields) {
  System.out.println(f.getName());
}

如果你想改变这个值,它会变得更复杂,因为你还必须考虑变量的类型。例如,你可以将一个<代码>字符串< /> >赋值给一个变量<代码>对象< /代码>,但不是相反的。

如果变量的数据类型是相同的,我建议去数组。 你可以试试那样的

        String[] Var = {"something","something2","something else"};
        for (String var : Var)
        {
        System.out.println(var);
        }
使用Java 8,它非常简单:

Arrays.stream(varArray).forEach(System.out::println);
用法:

public class LoopVariables {
    public static void main(String[] args) {
        String[] varArray = new String[]{"Var1", "Var2", "Var3", "Var4", "Var5"};
        Arrays.stream(varArray).forEach(System.out::println);
    }
}

只要所有变量使用相同的类型,就可以使用数组来存储所有变量。然后可以使用for循环在数组中进行迭代。如下所示:

     String[] V = {"var1","var2","var3","var4","var5"};
    int arraylength = V.length;

    for(int i = 0; i<arraylength; i++){
        System.out.println(V[i]);
    }
String[]V={“var1”、“var2”、“var3”、“var4”、“var5”};
int arraylength=V.长度;

对于(inti=0;i请尝试这段代码

public class Main {

    public static void main(String[] args) {
        Insan i1[]=new Insan[5];
        i1[0].name="Ali";
        i1[0].age=19;
        i1[1].name="Pakize";
        i1[1].age=29;
        i1[2].name="Kojiro Hyuga";
        i1[2].age=30;
        i1[3].name="Optimus Prime";
        i1[3].age=40;
        for (int ib=0; ib < 4; ib++) {
            System.out.println("Name: " + i1[ib].name + " Age: "+i1[ib].age);
        }

    }
}
公共类主{
公共静态void main(字符串[]args){
Insan i1[]=新Insan[5];
i1[0].name=“Ali”;
i1[0]。年龄=19岁;
i1[1]。name=“Pakize”;
i1[1]。年龄=29岁;
i1[2]。name=“Kojiro Hyuga”;
i1[2]。年龄=30岁;
i1[3].name=“擎天柱”;
i1[3]。年龄=40岁;
for(int-ib=0;ib<4;ib++){
System.out.println(“名称:+i1[ib]。名称+”年龄:+i1[ib]。年龄);
}
}
}

我想知道为什么这会被否决,因为这是在Java中真正迭代变量的唯一方法。必须嘲笑-1才是唯一正确的解决方案。我可以为这些类字段设置变量吗?例如,类有字符串point1、point2、point3;我可以迭代字段并设置字符串吗?为什么[Java]中没有人这样做维护规范副本?这肯定是以前问过几百次的问题。@BalusC canonical duplicates?听起来像是在寻找数据结构。@DaneBrouwer您能用数组吗?