Java 未识别前一行识别的变量

Java 未识别前一行识别的变量,java,netbeans,Java,Netbeans,我试图使用这个for循环从列表中的每个列表中访问2个值,我可以得到第一个值,但之后它无法识别列表。有人知道为什么吗 for (List<String> share : oriList) oldVal = share.get(2); oldCurr = share.get(1); for(列表共享:oriList) oldVal=share.get(2); oldCurr=share.get(1); oldCurr=行上的错误消息是找不到符号变量sh

我试图使用这个for循环从列表中的每个列表中访问2个值,我可以得到第一个值,但之后它无法识别列表。有人知道为什么吗

for (List<String> share : oriList)
        oldVal = share.get(2);
        oldCurr = share.get(1);
for(列表共享:oriList)
oldVal=share.get(2);
oldCurr=share.get(1);
oldCurr=行上的错误消息是找不到符号变量share


感谢您的回复

对于循环中的多行代码,您需要添加
{}

for (List<String> share : oriList)
{
    oldVal = share.get(2);
    oldCurr = share.get(1);
}
for(列表共享:oriList)
{
oldVal=share.get(2);
oldCurr=share.get(1);
}

Python使用缩进。代码块(函数体、循环等)以缩进开始,以第一个未缩进的行结束。缩进量由您决定,但必须在整个块中保持一致

但是,Java不是这样工作的。在这里,我们必须使用块。Java中的块是一组用大括号括起来的一条或多条语句。块以左大括号({)开始,以右大括号(})结束。在开始大括号和结束大括号之间,可以编写一个或多个语句

因此,应该在for循环中的语句周围使用大括号,如下所示:

for (List<String> share : oriList)
{
    oldVal = share.get(2);
    oldCurr = share.get(1);
}
for(列表共享:oriList)
{
oldVal=share.get(2);
oldCurr=share.get(1);
}

我是个白痴,不能做循环这就是为什么你总是,总是,总是使用花括号,即使主体只是一行。也许你被基于python缩进的块体弄糊涂了谢谢我刚刚注意到我在发布后忘记了这一点