이 프로그램은 A면과 B면의 값을 취하여 삼각형의 빗변을 계산합니다. 프로그램이 실행되면 사용자에게 4 가지 선택을 제공하며 사용자 A, B, C 또는 Q 중 하나를 입력합니다. 사용자가 A를 입력하면 사용자가 A면의 값을 입력 할 수 있고 4 가지 주요 선택 사항으로 돌아갑니다. 문제는 사용자가 A, B, C 또는 Q를 입력하면 A면을 다시 요청하기 위해 반복됩니다. 아래는 현재 가지고있는 코드입니다. 가치 A를 받아 들일뿐만 아니라 어떻게 만들 수 있습니까? 영원히 같은 값을 될 것입니다 물론 letter
너무 감사if 문을 다시 사용할 수 있습니까? 첫 번째 루프에만 프로그램 루프 수행
public class Newest_Exercise_1 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
char letter;
int valueOfA;
int valueOfB;
double hypotenuse;
Boolean loop =true;
letter = GettingUserInput(input);
System.out.println("value of letter: " +letter);
while(loop){
if(letter=='A' || letter =='a'){
valueOfA = InputWasA();
System.out.println(valueOfA);
letter = GettingUserInput(input);
}
if(letter=='B' || letter =='b'){
valueOfB = InputWasB();
System.out.println(valueOfB);
letter = GettingUserInput(input);
}
if(letter=='C' || letter =='c'){
System.out.println("made it to C");
hypotenuse = Math.sqrt((valueOfA*valueOfA)+(valueOfB*valueOfB));
System.out.println("Hypotenuse is: "+hypotenuse);
letter = GettingUserInput(input);
}
if(letter=='Q' || letter =='q'){
System.out.println("made it to Q");
System.out.println("Program Closed");
System.exit(0);
}
}
}
public static char GettingUserInput(Scanner input){
System.out.println("A-Enter value of side A");
System.out.println("B-Enter value of side B");
System.out.println("C-Calculate");
System.out.println("Q-Quit the program");
String s = input.next();
System.out.println("value of s: "+s);
char letter = s.charAt(0);
while(letter != 'A' && letter != 'a' && letter != 'B' && letter != 'b' && letter != 'C' && letter != 'c' && letter != 'Q' && letter != 'q'){
System.out.println("Invalid entry, Please try again");
System.out.println("A-Enter value of side A");
System.out.println("B-Enter value of side B");
System.out.println("C-Calculate");
System.out.println("Q-Quit the program");
s = input.next();
letter = s.charAt(0);
}
return letter;
}
public static int InputWasA(){
Scanner input = new Scanner(System.in);
Boolean loop1 = true;
int valueOfA = 0;
while(loop1){
try{
System.out.println("Enter value of side A");
valueOfA=input.nextInt();
loop1 = false;
}
catch(Exception e){
System.out.println("That was not an integer!");
input.next();
}
}
return valueOfA;
}
public static int InputWasB(){
Scanner input = new Scanner(System.in);
Boolean loop2 = true;
int valueOfB = 0;
while(loop2){
try{
System.out.println("Enter value of side B");
valueOfB=input.nextInt();
loop2 = false;
}
catch(Exception e){
System.out.println("That was not an integer!");
input.next();
}
}
return valueOfB;
}
public static void InputWasC(){
System.out.println("Made it to InputWasC!");
}
}
어떤 입력 사항입니까? –
내 업데이트를 참조하십시오. 그들은 올바른 위치에 초기화됩니다. 하지만 그들은 할당되지 않을 것 같습니다. –
먼저 0이나 -1로 valueOfA와 valueOfB를 초기화해야합니다. 그러면 작동 할 것입니다. 나는 그것을 시험했다. –