Java 初学者返回协助

Java 初学者返回协助,java,return,return-value,Java,Return,Return Value,嘿,我想知道为什么当我在main方法中打印“ask”时,这里的“return ask”没有改变“ask”的值(它在main方法中打印出0,但在Log方法中工作),以及如何修复它。提前谢谢 public static int Log(int ask){ int b=0; int c =0; c = scannerobj.nextInt(); b = scannerobj.nextInt(); ask = b*c; System.out.printl

嘿,我想知道为什么当我在main方法中打印“ask”时,这里的“return ask”没有改变“ask”的值(它在main方法中打印出0,但在Log方法中工作),以及如何修复它。提前谢谢

public static int Log(int ask){

    int b=0;
    int c =0;
    c = scannerobj.nextInt();
    b = scannerobj.nextInt();
    ask = b*c;
    System.out.println(ask);
    return ask;
}

public static void main(String [] args){
    int ask=0;

    Log(ask);

    System.out.println(ask);

}

因为您从不重置ask变量,而是忽略Log方法返回的int:

Log(ask); // the int returned is not assigned to anything
相反,你应该:

ask = Log(ask); // assign the int returned from the method back into ask.
还要了解Log方法内部的ask参数与main方法中的ask变量完全断开连接。更改一个对另一个没有影响,特别是因为ask是一个原语,Java是按值传递的