首页 > 解决方案 > 方法没有被正确调用?!卡路里应用

问题描述

package com.company;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

    //making values easier to change and also create global variables for gym comparison

    Scanner scan = new Scanner (System.in);
        System.out.println("How many calories did you consume today?>> ");
    int actualIntake = scan.nextInt();
        System.out.println("What is your BMR?>> ");
    int BMR = scan.nextInt();
    scan.close();

    //this method is what is expected with deficit
    calorieCalculation(actualIntake,BMR);
    //this is what you actually ate
    actualCalories(actualIntake,BMR);

    //gym with protein
        gym (30,40,50,100, actualIntake);
    }
    //testing method
    testingMeth(actualIntake);




    //What the user should be following
    public static int calorieCalculation(int actualIntake, int BMR){
        int calorieDifference = BMR - actualIntake;

        if (calorieDifference <= 0 ){
            calorieDifference = Math.abs (BMR - actualIntake);
            System.out.println("You have went over your deficit, well done fatty = " + calorieDifference);
        } else if (calorieDifference >= 0){
            System.out.println("Expected calorie deficit should be " + calorieDifference);
        }

        return calorieDifference;
    }

//What the user actually did
    public static int actualCalories (int actualIntake, int BMR ) {

        int deficitCalculation = actualIntake - BMR;
        if (actualIntake > BMR ) {
            System.out.println("You fat lard stop overeating you dumbass, " + "failed deficit of over " + deficitCalculation + " Calories.");

        } else if (actualIntake < BMR ) {
            System.out.println("Well done you created a deficit of " + deficitCalculation + " keep her going keep her movin." );
        }
        return deficitCalculation;
    }

//How much did you burn in the gym
    public static int gym (int treadMillCal, int rowingMachineCal, int weightsCal, int proteinShakeCal, int actualIntake) {

        int totalGym = ((treadMillCal + rowingMachineCal + weightsCal) - proteinShakeCal);

        if (totalGym >= 50 ) {
            System.out.println("Well done you have burned more than 50 calories whilst drinking protein shake");
        } else if (totalGym < 50 ) {
            System.out.println("Whats the bloody point of drinking protein if your putting the calories back on fatty: " + totalGym + " calories is how much you lost");
        }

        int gymAndTotal = actualIntake - totalGym;
        System.out.println("What you ate, plus minusing your workout along with the protein you consumed " + gymAndTotal);

        return totalGym;
    }

    public static void testingMeth (int actualIntake) {
        System.out.println(actualIntake);



    }

}
//Take calories in then calculate BMR and compare, return value

所以我目前正在学习java,只是学习和制作随机卡路里赤字和BMR程序。我创建了一个新方法,称为:

public static int testingMeth(actualIntake) {
    System.out.println(actualIntake);
}

问题是当我尝试在gym方法之后调用该方法时,它会产生错误。

    gym (30,40,50,100, actualIntake);
}
testingMeth(actualIntake);

如果我要从 main 方法中删除 gym 方法,我所有的其他方法都会出错。我不一定需要该程序的解决方案,而是为什么我会收到这些错误?只想学习和提高!谢谢。

换句话说,我可以在 Gym 方法之前调用 testingMeth 并且它工作正常,但为什么不能在 gym 方法之后呢?如果我摆脱了gym方法,程序中的其他方法会出现多个错误吗?

标签: javamethods

解决方案


如果您看到下面的代码,我可以按任何顺序运行这两种方法,并且它也可以正常工作。

你需要通过basics of method declaration and method call.

它会帮助你。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {

        //making values easier to change and also create global variables for gym comparison

        Scanner scan = new Scanner(System.in);
        System.out.println("How many calories did you consume today?>> ");
        int actualIntake = scan.nextInt();
        System.out.println("What is your BMR?>> ");
        int BMR = scan.nextInt();
        scan.close();

        //this method is what is expected with deficit
        calorieCalculation(actualIntake, BMR);
        //this is what you actually ate
        testingMeth(actualIntake);
        actualCalories(actualIntake, BMR);
        //gym with protein
        gym(30, 40, 50, 100, actualIntake);
    }

    //testing method


    //What the user should be following
    public static int calorieCalculation(int actualIntake, int BMR) {
        int calorieDifference = BMR - actualIntake;

        if (calorieDifference <= 0) {
            calorieDifference = Math.abs(BMR - actualIntake);
            System.out.println("You have went over your deficit, well done fatty = " + calorieDifference);
        } else if (calorieDifference >= 0) {
            System.out.println("Expected calorie deficit should be " + calorieDifference);
        }

        return calorieDifference;
    }

    //What the user actually did
    public static int actualCalories(int actualIntake, int BMR) {

        int deficitCalculation = actualIntake - BMR;
        if (actualIntake > BMR) {
            System.out.println("You fat lard stop overeating you dumbass, " + "failed deficit of over " + deficitCalculation + " Calories.");

        } else if (actualIntake < BMR) {
            System.out.println("Well done you created a deficit of " + deficitCalculation + " keep her going keep her movin.");
        }
        return deficitCalculation;
    }

    //How much did you burn in the gym
    public static int gym(int treadMillCal, int rowingMachineCal, int weightsCal, int proteinShakeCal, int actualIntake) {

        int totalGym = ((treadMillCal + rowingMachineCal + weightsCal) - proteinShakeCal);

        if (totalGym >= 50) {
            System.out.println("Well done you have burned more than 50 calories whilst drinking protein shake");
        } else if (totalGym < 50) {
            System.out.println("Whats the bloody point of drinking protein if your putting the calories back on fatty: " + totalGym + " calories is how much you lost");
        }

        int gymAndTotal = actualIntake - totalGym;
        System.out.println("What you ate, plus minusing your workout along with the protein you consumed " + gymAndTotal);

        return totalGym;
    }

    public static void testingMeth(int actualIntake) {
        System.out.println(actualIntake);
    }

}

你需要了解every opening braces of class/method/switch-case/or condition must have closing braces.

在您的情况下,您尝试在关闭类的大括号后调用某个方法,因此这些元素不是您的类的一部分,这就是它抛出错误的原因。


推荐阅读