簡體   English   中英

使用Java中的參數調用void方法

[英]Call to void method with parameters in Java

我在調用void方法

printDivisors(inputNum)

並收到此錯誤:

'void' type not allowed here

我在字符串中連接對方法的調用,編譯器一直抱怨...

這是對代碼中方法的調用:

if (determinePrime(inputNum)) {
    JOptionPane.showMessageDialog(null, "Prime");
} else {
    JOptionPane.showMessageDialog(null, "Not Prime" + printDivisors(inputNum));
}

您可以在下面看到完整的程序:

import javax.swing.JOptionPane;
    public class method_01 {
    public static void main (String [] args) {
        String input;
        int inputNum;

        // Determine Prime

        do {
            input = JOptionPane.showInputDialog("Enter a positive number please");
            inputNum = Integer.parseInt(input);
        } while (inputNum < 1 );

        if (determinePrime(inputNum)) {
            JOptionPane.showMessageDialog(null, "Prime");
        } else {
            JOptionPane.showMessageDialog(null, "Not Prime" + printDivisors(inputNum));
        }
    }

    // Determine Prime Method

    public static boolean determinePrime(int num) {

        for (int i = 2; i < num ; i++) {
            if (num % i == 0) 
                return false;
        }
        return true;
    }

    // Print all the divisors of a number

    public static void printDivisors(int number) {

        for (int i = 1; i <= number; i++ ) {

            if (number % i == 0)

                System.out.print("\t" + i); 
        }
    }
}

任何幫助將不勝感激。

您的聲明在此處無效:

public static void printDivisors(int number)

如果您在函數內部使用它,則應該返回一個字符串。 即寫入字符串而不是

System.out.print("\t" + i);

並使用+將字符串附加到代碼的末尾:

JOptionPane.showMessageDialog(null, "Not Prime" + printDivisors(inputNum));}

問題在於

JOptionPane.showMessageDialog(null, "Not Prime" + printDivisors(inputNum));

我想你正在嘗試打印除數,但它返回null,理想情況下,當編譯器編譯時,它會搜索一個值,因為你在“Not Prime”之后有“+”符號,但是沒有得到任何東西。 因此它拋出一個例外。

要么更改printDivisors方法的返回類型,要么從參數中刪除該部分。

暫無
暫無

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

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