Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 变量-编译器不';I don’我不在乎我输入的数字_Java - Fatal编程技术网

Java 变量-编译器不';I don’我不在乎我输入的数字

Java 变量-编译器不';I don’我不在乎我输入的数字,java,Java,我试着做一个基本的程序,可以做一些数学计算,我想让它使用方法。起初,它要求输入两个数字,然后进行计算,但我不知道为什么无论输入什么数字,它总是返回“0”。我需要在代码中更改什么?这样我的程序就可以进行这些计算了 import java.util.Scanner; public class Z1k7 { static double a; static double b; static double sum; static double difference; static double prod

我试着做一个基本的程序,可以做一些数学计算,我想让它使用方法。起初,它要求输入两个数字,然后进行计算,但我不知道为什么无论输入什么数字,它总是返回“0”。我需要在代码中更改什么?这样我的程序就可以进行这些计算了

import java.util.Scanner;

public class Z1k7
{
static double a;
static double b;
static double sum;
static double difference;
static double product;
static double quotient;

public class Operations{

double sum (double a, double b){
    return a+b;
}

double difference (double a, double b){
    return a-b;
}

double product (double a, double b){
    return a*b;
}

double quotient (double a, double b){
    return a/b;
}}


public static void main(String[] args) {
    System.out.println("This programme makes some calculations");
    Scanner scan = new Scanner(System.in);
    System.out.println("Enter the first number ");
    a = scan.nextDouble();
    System.out.println("Enter the second number ");
    b = scan.nextDouble();

    System.out.println("The sum: "+sum);
    System.out.println("The difference: "+difference);
    System.out.println("The product: "+product);
    System.out.println("The quotient: "+quotient);
}
}像您的

double sum (double a, double b){
    return a+b;
}
有两个值,a和b。这些值与您声明为的值无关

static int a;
static int b;
在你们班。它们只是同名而已。这可能会引起混乱

你必须调用你的方法来进行实际的计算,比如

int resultFromSummation = sum(a,b);
这里a和b是您的类变量。这些a和b称为实际参数。它们将被复制到方法内部的a和b(称为*形式参数)

  • 您必须在接受anb的输入后调用这些方法
  • 将结果赋给变量
  • 然后输出结果

您从不调用方法来执行操作,只需打印变量的值,这些变量的默认值为
0
。在打印变量之前,请设置它们

System.out.println("This programme makes some calculations");
Scanner scan = new Scanner(System.in);
System.out.println("Enter the first number ");
a = scan.nextDouble();
System.out.println("Enter the second number ");
b = scan.nextDouble();

// --- New code ------------

// Since the operations are in a different class you need to 
// create an instance of that class
Operations ops = new Operations();

sum = ops.sum( a, b );
difference = ops.difference( a, b );
product = ops.product( a, b );
quotient = ops.quotient( a, b );

// end new code --------------

System.out.println("The sum: "+sum);
System.out.println("The difference: "+difference);
System.out.println("The product: "+product);
System.out.println("The quotient: "+quotient);
另外,由于
操作
实际上不需要实例来执行这些操作,因此可以创建静态方法:

public class Operations{

    public static double sum (double a, double b){
        return a+b;
    }

    // ...
}
然后在不创建实例的情况下调用它们:

// --- New code ------------

sum = Operations.sum( a, b );
difference = Operations.difference( a, b );
product = Operations.product( a, b );
quotient = Operations.quotient( a, b );

// end new code --------------
教程: