两个数字的总和

时间:2015-10-03 16:40:11

标签: java sum

我想要两个数字的总和。但我这样做有问题。我不明白为什么我的总和总是为零。

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);
    }
}

4 个答案:

答案 0 :(得分:2)

我不是java程序员,但我可以看到你有名为ab的全局变量以及名为ab的局部变量。

您的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)

你犯了几个错误:

  1. String a和String b是main()方法的局部变量。所以你无法访问 来自display()方法的那些变量。 display()方法中的result=a+b;实际上是添加a和b,它们在类级别中声明,默认值为0.因此求和为0。

  2. 即使你在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方法。