2014-10-14 4 views
-1

Я не уверен, как вызвать метод без параметров или почему я бы это сделал. Некоторые переменные еще не объявлены, но я сделаю это после. Предполагается, что программа вводит пользовательский ввод веса своей собаки и преобразует его в KG, если они вводят его в LB, а затем подсчитывают количество пищи для кормления собаки.Как вызвать метод без использования параметров

import javax.swing.JOptionPane; 
import java.util.Scanner; 
public class hakesgraemeA2Q1{ 

    public static void main(String args[]) 
    { 
     double weightConversion = convertLBtoKG() 
     double weightInLB = 
    } 

    public static double convertLBtoKG(double weightInLB) 
    { 
     return weightInLB * 0.454; 
    } 


    public static double readWeight() 
    { 
     Scanner keyboard = new Scanner(System.in); 
     String userInput = keyboard.nextLine(); 
     System.out.println("do you want to enter weight in kg or lb?, enter k for kg or p for lb "); 
     if (userInput == "p"){ 
      System.out.println("enter your dogs weight in lb's:"); 
      return Math.round(keyboard.nextDouble() * weightConversion)/ 4f; 
     }else if (userInput == "k"){ 
      System.out.println("enter your dogs weight in kg's:"); 
      return Math.round(keyboard.nextDouble())/4f; 
     }else{ 
      System.out.println("i can't understant your choice; assuming kg:"); 
      return Math.round(keyboard.nextDouble())/4f; 
     } 
    } 
    public static double computeFoodAmount(double weightInKG) 
    { 
     if (weightInKG < 9.0){ 
      return weightInKG * 0.22; 
     }else if (9.0 <= weightInKG && weightInKG < 32.0){ 
      return weightInKG * 0.18; 
     }else if (32.0 <= weightInKG && weightInKG < 45.0){ 
      return weightInKG * 0.13; 
     }else{ 
      return weightInKG * 0.09; 
     } 
    } 
} 
+0

Вы уже * вызываете методы там без использования параметров; например, 'keyboard.nextLine()'. Также 'convertLBtoKG()' хотя и должен иметь параметр. Вот и все. просто не ставьте никаких параметров между '()'. – Boann

ответ

0

Вы не можете проверить String равенство с ==, вы могли бы использовать String#equalsIgnoreCase(String) как

if (userInput.equalsIgnoreCase("p")) { 
    System.out.println("enter your dogs weight in lb's:"); 
    return Math.round(keyboard.nextDouble() * weightConversion)/ 4f; 
} else if (userInput.equalsIgnoreCase("k")) { 
    System.out.println("enter your dogs weight in kg's:"); 
    return Math.round(keyboard.nextDouble())/4f; 
} else { 
    System.out.println("i can't understant your choice; assuming kg:"); 
    return Math.round(keyboard.nextDouble())/4f; 
} 

И присвоить результаты readWeight() к weightInLB вы могли бы сделать

double weightInLB = readWeight(); 

Кроме того, это

double weightConversion = convertLBtoKG() 

требует, чтобы double был отправлен в convertLBtoKG(), так как он принимает double.

+1

Ненависть к downvote вам, но вы действительно не отвечали на вопрос вообще, что-то вроде этого должно было быть добавлено в комментарий или добавлено к вашему ответу – DreadHeadedDeveloper

+0

Прохладный, это хорошо сейчас, но я бы немного расширил этот readWeight() – DreadHeadedDeveloper

0

Если метод без параметров, вы просто набор пустых скобок, например

double weight = readWeight(); 

Вы, как правило, используете метод без параметров, если вы не предвидите указанный способ, имеющий различные входы. Параметры обычно входят в функцию, где происходит куча материала, а затем возвращается значение. Если входы будут одинаковыми, неважно, тогда не может быть использования для параметра. Например, в вашем методе readWeight у вас нет внешнего входа, входящего в функцию, поэтому отсутствие параметров имеет смысл. Но ваш метод convertLBtoKG требует внешнего ввода при вызове метода, потому что вам нужно преобразовать вес в правильную единицу измерения, а затем вернуть его обратно.

Смежные вопросы