2016-06-24 4 views
0

다음은 코드입니다. 입력 된 변의 3 개가 모두 0이 아니라 1 또는 2가 아닌 루프를 멈출 수 있어야합니다. 입력 된 변의 1 또는 2가 0이면 사용자에게 다시 프롬프트해야합니다. 3 가지 조건이 모두 충족 될 때 프로그램을 종료시키는 운영자가 있습니까?이 인스턴스에서 do-while 루프를 중지하는 방법

미리 감사드립니다. 조건 3은 0 이 { //이 System.out.print은 ("삼각형의면 1을 입력 :") 측면을받을 수 있나요 여부를 확인하는 경우

import java.util.Scanner; 

public class Program2 
{ 

public static void main(String[] args) 
{ 
    // Read user inputs 
    @SuppressWarnings("resource") 
    Scanner key = new Scanner(System.in); 

    // User inputed sides of triangle 
    double side1, side2, side3; 


    // Opening messages 
    System.out.println("\t\t\t\t\tTriangle Identifier Program"); 
    System.out.print("This program will tell you what type of tringle you have,"); 
    System.out.println("\nif it is a right triangle, and the area of the triangle."); 
    System.out.println("Use input of 0 0 0 to terminate the program.\n"); 

    do 
    { 
     // Get sides 
     System.out.print("Enter side 1 of the triangle: "); 
     side1 = key.nextInt(); 
     System.out.print("Enter side 2 of the triangle: "); 
     side2 = key.nextInt(); 
     System.out.print("Enter side 3 of the triangle: "); 
     side3 = key.nextInt(); 

     double longest = 0; 
     double shorter1 = 0; 
     double shorter2 = 0; 

     if (side1 == 0 || side2 == 0 || side3 == 0) 
      System.out.println("These numbers do not satisfy the triangle inequality. Please try again."); 

     // Find the largest side 
     if(side1 > side2 && side1 > side3) 
     { 
      longest = side1; 
      shorter1 = side2; 
      shorter2 = side3; 
     } 
     if(side2 > side1 && side2 > side3) 
     { 
      longest = side2; 
      shorter1 = side1; 
      shorter2 = side3; 
     } 
     if(side3 > side2 && side3 > side1) 
     { 
      longest = side3; 
      shorter1 = side1; 
      shorter2 = side2; 
     } 
     if(side1 > 0 && side2 > 0 && side3 > 0) 
     { 
      if(side1==side2 && side2==side3 && side3==side1) 
       System.out.println("The triangle is equilateral"); 
      if((side1==side2 && side2!=side3) || (side2==side3 && side2!=side1) || (side1==side3 && side2 !=side3)) 
       System.out.println("The triangle is isosceles"); 
      if(side1 != side2 && side2 != side3 && side1 != side3) 
       System.out.println("The triangle is scalene"); 
      if(longest == Math.sqrt((shorter1*shorter1)+(shorter2*shorter2))) 
       System.out.println("The triangle is a right triangle"); 
      else 
       System.out.println("The tringle is not a right triangle"); 
     } 



    } while (side1 != 0 & side2 != 0 & side3 != 0); 



} 

} 
+0

추가 브레이크 키워드 –

+0

를 사용하여 다른 경우, 만약 (측면 1 == 0 && 측면 2 == 0 && side3 == 0) {체류} 모두 3 0 –

+0

같지 않은 경우 다른 부분에서 손을 다른 값 @NagaSaiA 완벽하게 일했습니다. 설명 주셔서 감사합니다! –

답변

0

또 다른 추가; side1 = key.nextInt(); System.out.print ("삼각형의 측면 2 입력 :"); side2 = key.nextInt(); System.out.print ("삼각형의 측면 3 입력 :"); side3 = key.nextInt();

 double longest = 0; 
     double shorter1 = 0; 
     double shorter2 = 0; 
     if (side1 == 0 && side2 == 0 && side3 == 0){ 
       break; 
     } else{ 


     if (side1 == 0 || side2 == 0 || side3 == 0) 
      System.out.println("These numbers do not satisfy the triangle inequality. Please try again."); 

     // Find the largest side 
     if(side1 > side2 && side1 > side3) 
     { 
      longest = side1; 
      shorter1 = side2; 
      shorter2 = side3; 
     } 
     if(side2 > side1 && side2 > side3) 
     { 
      longest = side2; 
      shorter1 = side1; 
      shorter2 = side3; 
     } 
     if(side3 > side2 && side3 > side1) 
     { 
      longest = side3; 
      shorter1 = side1; 
      shorter2 = side2; 
     } 
     if(side1 > 0 && side2 > 0 && side3 > 0) 
     { 
      if(side1==side2 && side2==side3 && side3==side1) 
       System.out.println("The triangle is equilateral"); 
      if((side1==side2 && side2!=side3) || (side2==side3 && side2!=side1) || (side1==side3 && side2 !=side3)) 
       System.out.println("The triangle is isosceles"); 
      if(side1 != side2 && side2 != side3 && side1 != side3) 
       System.out.println("The triangle is scalene"); 
      if(longest == Math.sqrt((shorter1*shorter1)+(shorter2*shorter2))) 
       System.out.println("The triangle is a right triangle"); 
      else 
       System.out.println("The tringle is not a right triangle"); 
     } 

} 

    } while (side1 != 0 & side2 != 0 & side3 != 0); 
관련 문제