我是编程新手,很难搞清楚这个错误:
C:....>javac Power.java
Power.java:12: error: variable i is already defined in method main(String[])
`for(int **i** = 0; i < upper_limit + 1; i++)`
这是整个计划。我确信答案非常简单,但对于我的生活,我无法弄清楚。
import java.util.Scanner;
public class Power {
public static void main( String args[] ) {
Scanner input_scanner = new Scanner(System.in);
System.out.print("Powers of 2 up to? ");
int upper_limit = input_scanner.nextInt();
int i = 0;
for (int i = 0; i < upper_limit + 1; i++) {
System.out.println(i + " - " + Math.pow(2, i));
}
}
}
答案 0 :(得分:3)
i
变量已定义为for
循环的一部分。只需删除以下行:
int i = 0;
答案 1 :(得分:0)
int i = 0;
for(int i = 0; i < upper_limit + 1 ; i++ )
{
删除for循环中的int或删除for循环上方的行。现在你定义int i两次
答案 2 :(得分:0)
在代码中定义变量i两次。它应该只按时定义。我在下面两次强调了这一点。
Scanner input_scanner = new Scanner( System.in );
System.out.print( "Powers of 2 up to? " );
int upper_limit = input_scanner.nextInt();
int i = 0; //First time i is defined
for(int i = 0; i < upper_limit + 1 ; i++ ) //second time i is defined
{
System.out.println( i + " - " + Math.pow( 2, i));
}
要解决此问题,请删除其中一条int i = 0
行。两个选项如下所示:
int upper_limit = input_scanner.nextInt();
//First definition removed
for(int i = 0; i < upper_limit + 1 ; i++ ) //second time i is defined
{
System.out.println( i + " - " + Math.pow( 2, i));
}
第二种解决方案
int upper_limit = input_scanner.nextInt();
int i = 0; //First time i is defined
for(; i < upper_limit + 1 ; i++ ) //second definition removed
{
System.out.println( i + " - " + Math.pow( 2, i));
}