2013-09-23 7 views
0

나는 Sedentary, Somewhat_Active, Active 및 Very_Active가 추가 된 BMR을 계산하려고합니다. 코드는 컴파일은되지만 계산되지는 않습니다. 이는 첫 번째 시도이므로 조언이 도움이됩니다. 추가 된 카테고리없이 성공적으로 BMR을 만들었지 만 지금은 계산을 할 수 없습니다. 난 내가 또한 MaleBMR에추가 if 문을 사용하여 BMR을 계산 하시겠습니까?

import java.util.Scanner; 

public class BMR2 

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

    Scanner kybd = new Scanner(System.in); 

    System.out.print("Enter Height: "); 

    double Height = kybd.nextDouble(); 

    System.out.print("Enter Weight: "); 

    Double Weight = kybd.nextDouble(); 

    System.out.print("Enter Age: "); 

    int Age = kybd.nextInt(); 

    double FemaleBMR = 655 + 4.3 * Weight + 4.7 * Height - 6.8 * Age; 

    double MaleBMR = 66 + (6.3 * Weight) + (12.9 * Height) - (6.8 * Age); 

    int choc = 230; 
    System.out.println("Are you Sedentary, Somewhat_Active, Active, or Very_Active?: "); 
    boolean Sedentary = kybd.nextBoolean(); 
    boolean Somewhat_Active = kybd.nextBoolean(); 
    boolean Active = kybd.nextBoolean(); 
    boolean Very_Active = kybd.nextBoolean(); 

    if (Sedentary) 
     System.out.println("chocolate bars for female: "+ FemaleBMR*1.2/choc); 

    else if (Somewhat_Active) 
    System.out.println("chocolate bars for female: "+ FemaleBMR*1.3/choc); 

    else if (Active) 
     System.out.println("chocolate bars for female: "+FemaleBMR*1.4/choc); 

    else if (Very_Active) 
     System.out.println("chocolate bars for female: "+FemaleBMR*1.5/choc); 

    } 
    } 

컴파일을 추가하기 전에 바로 FemaleBMR 먼저 출근을 시도하고 있지만 심각하게 포스터 교수에 대한 실험실 지정을하고 있던 의심 오전

java.util.InputMismatchException 
at java.util.Scanner.throwFor(Scanner.java:840) 
at java.util.Scanner.next(Scanner.java:1461) 
at java.util.Scanner.nextBoolean(Scanner.java:1756) 
at BMR2.main(BMR2.java:43) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:597) 
at edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:272) 
+0

를 종료합니다. 입력 사항을 게시하십시오. – chrylis

+0

다른 입력을 어디에서 찾을 수 있을지 잘 모르겠습니다. 다시 나는 자바를 처음 사용한다. – user2805461

+0

어째서 수직 공백이 어리석은가? –

답변

0

를 산출 계산하지 않습니다 Sierra College의 DoBeck CS12 또는 CS13 수업. 나는 지금 그의 수업에서 똑같은 일을하고있다.

어쨌든

맨 위에 필드를 선언해야합니다. 보다 쉽게 ​​읽고 디버그/유지 관리 할 수 ​​있습니다.

변경 이중 무게 = kybd.nextDouble(); 곱하기 Weight = kybd.nextDouble();

라이프 스타일 선택 평가자 (좌식, 활성, 매우 활성)에 대해 switch 문을 사용하십시오. 다음은 그것의 나의 버전은 http://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html

입니다 :

여기 switch 문에 대해 알아보세요. 코드를 읽기 쉽고, 이해할 수 있고 유지 보수하기 쉽게하기 위해 주석에 공백과 적절한 문서가 있는지 확인하십시오.

// 아래 코드는

수입 java.util.Scanner를 시작합니다;

Public 클래스 BMRCalculator

{

공공 정적 무효 메인 (문자열 인수 [])

{

// 필드

double BMRMale, BMRFemale; // male and female bmr calculation fields 

double height; // inches 
double weight; // pounds (lbs) 

final int maleOption = 1; 

final int femaleOption = 2; 

int userChoice; 

int age = 0; 


Scanner kb = new Scanner (System.in); // creates a keyboard scanner object called: kb 


    System.out.print("What is your age: "); 

    age = kb.nextInt(); 


    System.out.print("Enter your height (inches): "); 

    height = kb.nextDouble(); 

    System.out.print("Enter your weight (pounds): "); 

    weight = kb.nextDouble(); 




    // male or female gender selction prompt 

    System.out.print ("Enter 1 for male or 2 for female gender selection: "); 

    userChoice = kb.nextInt(); 

/*

,691,363

* 해리스 ​​베네딕트 방법

* BMR : 남성 - (6.8 = 66 + (파운드 6.23 X 가중치) + (인치 12.7 X 높이)210 개

* 칼로리 계산을 태워 X 연령)

* BMR 여성 : = 655 + (4.35 X 체중 파운드) + (4.7 X 높이 in) - (4.7 X 나이)

*/

경우 (userChoice> = 1 & & userChoice < = 2)

{

switch(userChoice) 

    { 
    case maleOption: 

// BMR Men: = 66 + (6.23 X weight in pounds) + (12.7 X height in inches) – (6.8 X age) 

    BMRMale = 66 + (6.23 * weight) + (12.7 * height) - (6.8 * age); 

    System.out.println ("Your Male BMR is: " + BMRMale); 


    break; // break out of maleOption 


    case femaleOption: 

// BMR Women: = 655 + (4.35 X weight in pounds) + (4.7 X height in inches) – (4.7 X age) 


    BMRFemale = 655 + (4.35 * weight) + (4.7 * height) - (4.7 * age); 

    System.out.println ("Your Female BMR is: " + BMRFemale); 

    break; // break out of femaleOption 




    } // end switch case 

} // 단부 다른 블록

경우 // 1 또는 2를 입력하지 않으면 오류가 표시됩니다.

{ 

    System.out.println("Invalid gender choice. Please enter 1 for male, 2 for female !"); 



} // end if .. else block 

} // 당신은`boolean` 값 읽기를 요구하고 있지만, 몇 가지 다른 입력을보고의 주요

} // 끝 클래스를

관련 문제