我很抱歉,如果这个问题的答案是如此明显我甚至不应该在这里发布,但我已经查找了编译以下代码结果的错误,并且发现无法解释能够穿透我厚厚的,未受过教育的头骨
这个程序的目的是从用户那里得到2个整数并打印出来,但是我已经设法搞砸了。
import java.util.Scanner;
public class Exercise2
{
int integerone, integertwo; //putting ''static'' here doesn't solve the problem
static int number=1;
static Scanner kbinput = new Scanner(System.in);
public static void main(String [] args)
{
while (number<3){
System.out.println("Type in integer "+number+":");
if (number<2)
{
int integerone = kbinput.nextInt(); //the integer I can't access
}
number++;
}
int integertwo = kbinput.nextInt();
System.out.println(integerone); //how do I fix this line?
System.out.println(integertwo);
}
}
非常感谢解释或正确文献的链接。
编辑:我想在这里使用一个循环,以便探索实现此目的的多种方式。
答案 0 :(得分:7)
第二次使用同一个变量时删除int
关键字。因为当你这样做时,它基本上是声明另一个具有相同名称的变量。
static int integerone, integertwo; // make them static to access in a static context
... // other code
while (number<3){
System.out.println("Type in integer "+number+":");
if (number<2)
{
integerone = kbinput.nextInt(); //no int keyword
}
number++;
}
integertwo = kbinput.nextInt(); // no int keyword
它也需要static
,因为您试图在静态上下文(即主方法)中访问它。
另一种选择是在main()
方法中但在循环开始之前声明它,以便在整个主方法中可以访问它(如"Patricia Shanahan"所示)。
public static void main(String [] args) {
int integerone, integertwo; // declare them here without the static
... // rest of the code
}
答案 1 :(得分:0)
怎么样:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner kbinput = new Scanner(System.in);
System.out.println("Type in an integer: ");
int integerone = kbinput.nextInt();
System.out.println("Type another: ");
int integertwo = kbinput.nextInt();
System.out.println(integerone);
System.out.println(integertwo);
}
}