簡體   English   中英

不知道如何返回一個值

[英]Can’t figure out how to Return a value

這可能會被否決,所以如果你不投票給我,你能提供一個鏈接到我可以找到的地方嗎?

我在這里做錯了什么? 我很新,似乎這應該有效。 我只是不知道我做錯了什么。 這是我的錯誤

public class Test
{
    public static long calculate(long n)
    {   
        n = args[0];
        return n;
    }   
    public static void main(String[] args)
    {       
        long answer;
        answer = calculate();       
    }   
}

例外:

Test.java:6: error: cannot find symbol
                n = args[0];
                    ^
  symbol:   variable args
  location: class Test
Test.java:13: error: method calculate in class Test cannot be applied to given types;
                answer = calculate() ;
                         ^
  required: long
  found: no arguments
  reason: actual and formal argument lists differ in length
2 errors

argsmain方法的本地String數組。

所以首先它是main方法的一個局部變量,它在解釋第一個錯誤的calculate方法中不可見: error: cannot find symbol

其次calculate需要一個long參數,而您正試圖提供一個String 為此,您收到error: method calculate in class Test cannot be applied to given types;

因此,將args[0]轉換為long作為參數后,將其傳遞給calculate

public class Test
{
    public static long calculate(long n)
    {   
        return n;
    }   
    public static void main(String[] args)
    {       
        long answer = 0L;
        try{
            answer = calculate(Long.parseLong(args[0]));
        }catch (ArrayIndexOutOfBoundsException ae){
            ae.printStackTrace();
        }catch (NumberFormatException nfe){
            nfe.printStackTrace();
        }
        System.out.println(answer);      
    }   
}

在整個類中,沒有使用命名args定義的實例變量,您嘗試使用的變量是 main 方法中的參數,只能在 main方法中訪問

通過考慮您的代碼,您在計算內部什么都不做,因此您可以按如下方式編寫 main 方法:

 public static void main(String[] args)
    {       
        long answer;
        answer = Long.parseLong(args[0]);       
    }  

兩個代碼都會做同樣的工作。

下面的代碼可以解決您的問題

public class Test
{
    public static long calculate(String[] args)
    {
        long n = Long.parseLong(args[0]);
        return n;
    }
    public static void main(String[] args)
    {
        long answer;
        answer = calculate(args);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM