2017-09-11 76 views
-3

我需要重寫一個java程序我已經完成了,現在包括一個類,我將能夠使用JUnit4進行測試。不幸的是,我甚至無法得到這一點,因爲我收到一個錯誤。這是一個非常簡單的程序,我要求用戶輸入3個數字,將這些值傳遞給執行一些計算的函數,並返回帶有返回值的打印語句。我讓它在沒有這個功能的情況下工作,我在語法上遇到了麻煩,並且完全理解我可以做什麼以及不能做什麼。令人沮喪的語法將值傳入方法的問題

這就是:

import java.util.Scanner; 

public class Main { 

    public static void main(String[] args) { 
     Scanner kybd = new Scanner(System.in); 

     System.out.println("Given ax^2 + bx^2 + c = 0"); 
     System.out.println("Please enter 'a', 'b', and 'c' to determine if there are any roots: "); 
     float numA = kybd.nextFloat(); 
     float numB = kybd.nextFloat(); 
     float numC = kybd.nextFloat(); 

     quadraticAnswer(numA, numB, numC); 

    } 

    public static void float quadraticAnswer (float numA, float numB, float numC){ 
     float discriminant = ((numB*numB)-(4*numA*numC)); 

     if (discriminant < 0){ 
      System.out.println("The Equation has no roots!"); 
     } 

     else if (discriminant ==0) { 
      float root = (-numB + Math.sqrt(discriminant))/(2*numA); 
      System.out.println("The Equation has one root: "+ root); 
     } 

     else { 
      float root1 = (-numB + Math.sqrt(discriminant))/(2*numA); 
      float root2 = (-numB - Math.sqrt(discriminant))/(2*numA); 
      System.out.println("The Equation has two roots: " + root1 + " and " + root2 + "."); 
     } 
    } 
    } 
+2

如果您收到錯誤,那是因爲您做錯了什麼。如果您希望我們更具體地瞭解您做錯了什麼,請更具體地說明您得到的錯誤。請不要在沒有告訴我們錯誤是什麼的情況下發布「我有錯誤」的問題。 – ajb

+1

如果判別式爲0,則不需要取其平方根。 – Li357

+0

這個問題是關於Java的最基本的問題,真正的解決方案不是在這裏詢問這些事情,而是研究語言的基本原理。如果你不採取這一重要步驟,你會面臨很多痛苦和沮喪。 –

回答

2

變化

public static void float quadraticAnswer 

無效的語法

public static void quadraticAnswer 

因爲你不返回任何東西。

如果您使用Eclipse之類的IDE,它將快速突出顯示此類錯誤

+0

謝謝。所以如果我有這個權利,如果我不返回任何東西,我不應該在方法中放置數據類型? – kingsman

+0

如果你沒有返回任何東西,則返回無效 –

+0

@kingsman void意味着你希望你的方法不返回任何東西,否則如果你想從你聲明它的類型的方法返回一個結果 – Mitchel0022