初学者返回援助

时间:2015-04-03 17:12:39

标签: java return return-value

嘿,我想知道为什么"回复问"这里不会改变'问'当我在我的main方法上打印它(它在main中打印出来但在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);

}

1 个答案:

答案 0 :(得分:1)

因为你从不重置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是按值传递的。