我想要两个数字的总和。但我这样做有问题。我不明白为什么我的总和总是为零。
import java.util.*;
public class Numbers {
static int a;
static int b;
static int result;
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Type the first number:");
String a = in.nextLine();
System.out.println(a);
System.out.println("Type the second number:");
String b = in.nextLine();
System.out.println(b);
display();
}
public static void display(){
result=a+b;
System.out.println("Sum of numbers is " + result);
}
}
答案 0 :(得分:2)
我不是java程序员,但我可以看到你有名为a
和b
的全局变量以及名为a
和b
的局部变量。
您的main()
正在设置局部变量。 display()
正在读取全局变量。
答案 1 :(得分:0)
你不需要静态"全球"你的情况中的变量。所以你可以删除这段代码:
static int a;
static int b;
static int result;
然后,juste使用你的局部变量并将a和b作为参数提供给display()
方法,如下所示:
public static void display(int a, int b){
System.out.println("Sum of numbers is " + (a+b));
}
最终,您需要通过String
投射in.nextLine()
并将其转换为int,例如Integer.parseInt()
。或者直接从用户那里获取整数。
答案 2 :(得分:0)
你犯了几个错误:
String a和String b是main()方法的局部变量。所以你无法访问
来自display()方法的那些变量。 display()方法中的result=a+b;
实际上是添加a和b,它们在类级别中声明,默认值为0.因此求和为0。
即使你在main方法中写result=a+b;
它也行不通。因为a和b在main方法中是String,你不能在String上添加
答案 3 :(得分:0)
使用此代码
import java.util.*;
public class NewClass {
static int a;
static int b;
static int result;
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Type the first number:");
a = in.nextInt();
System.out.println(a);
System.out.println("Type the second number:");
b = in.nextInt();
System.out.println(b);
display();
}
public static void display(){
result=(a+b);
System.out.println("Sum of numbers is " + result);
}
}
使用nextInt代替nextLine方法。如果类型为int,则使用nextInt方法。