我正在制作for循环,我发现了一个奇怪的问题。 在for循环中,我可以创建一个System.out.println(i); 打印出我,它完美地运作。但是,如果我尝试 要添加第二行打印出i + 1,我收到错误, 说'我无法解决变量'。
为什么我无法打印“我”的价值?内部两次相同 for loop?
public static void main(String[] args) {
for (int i = 0; i<5; i++)
System.out.println(i);
System.out.println(i+1); // This i returns an error that says that 'i cannot be resolved to a variable'
}
答案 0 :(得分:1)
试试这个
public static void main(String[] args) {
for (int i = 0; i<5; i++){
System.out.println(i);
System.out.println(i+1);
}
}
如果您不在 for / if 等上使用括号 {} ,则只会将下一行视为其内容。因此,在您的代码中,只有第一个打印被视为for循环的内容。要键入更多行,您需要使用括号{};
答案 1 :(得分:1)
在java和许多其他语言中,块由诸如{}之类的块标记。这些内部的所有内容都在范围内。如果跳过一个循环的行程(它与哪个循环无关),只有下一行作为循环体。所以,你的代码:
for (int i = 0; i<5; i++)
System.out.println(i);
System.out.println(i+1);
相当于
for (int i = 0; i<5; i++) {
System.out.println(i);
}
System.out.println(i+1);
你可以看到,循环中只有一个语句。另一个在外面。你得到的错误是因为变量&#34; i&#34;在该范围内不存在。它只存在于for循环中。
答案 2 :(得分:0)
您缺少括号:
public static void main(String[] args) {
for (int i = 0; i<5; i++) {
System.out.println(i);
System.out.println(i+1); // This i returns an error that says that 'i cannot be resolved to a variable'
}
}
答案 3 :(得分:0)
您必须在大括号内包含两行:
for (int i = 0; i<5; i++)
{
System.out.println(i);
System.out.println(i+1);
}
因为i
变量范围仅限于for
循环。
答案 4 :(得分:0)
您需要在大括号中添加两个语句,因为您有多个语句而第二个语句在循环之外。
试试此代码
public static void main(String[] args){
for(int i=0;i<5;i++){
System.out.println(i);
System.out.println(i+1);
}
}