【解決方法】ブール値の降順を受け取るか返すメソッドはありますか?


これは質問全体です:

1. メソッドを作成します。
+ inDescendingOrder(a:int, b:int, c:int): boolean

2. inDescendingOrder は 3 つのパラメーターを取り、a、b、c が降順の場合は true を返し、そうでない場合は false を返します。

3. ユーザーに 3 つの数字を要求し、それらを使用して inDescendingOrder() を呼び出し、最初の 3 つの数字が降順で与えられたかどうかを報告するメイン メソッドを記述します。

典型的なインタラクションは次のようになります: inDescendingOrder へようこそ:
最初の数字を入力してください: 8
2 番目の数字を入力してください: 4
3 番目の数字を入力してください: 5
これらの番号は降順で入力されていません。 8、4、5 はユーザーが入力した数字です。

(jGRASP でコードを実行しようとすると、数値が降順でない場合でも、降順であると表示されます)。

コードを配列ではなく if/else ステートメントに含めたい。

私が試したこと:

Java
import java.util.Scanner;
public class DescendingOrder{
   public static void main(String[] args){
      System.out.println("Welcome to inDecending Order");
      int a = readInt("Enter first number:  ");
      int b = readInt("Enter second number: ");  
      int c = readInt("Enter third number: ");
      inDescendingOrder(a,b,c);
      if(true){
         System.out.println("Those number were entered in decending order");
      }else if(false){
         System.out.println("Those number were not entered in decending order");
       }else{
         System.out.println("Error");
      //inDescendingOrder(a,b,c);
      }
   }
   public static boolean inDescendingOrder(int a, int b, int c){
      boolean flag;
      if ((a<= b) && (a <= c)){
         return flag= false;
      }else if ((a<=b) && (a>=c)){
         return flag= false;
     
        // return "Those number were not entered in decending order";
      }else if ((a >= b) && (a >= c)){
         return flag = true;
         //return "Those number were entered in decending order";
      }else{
         return true;
      }
   }  

   public static int readInt(String prompt){    
      Scanner sc = new Scanner(System.in);  
      System.out.println(prompt);  
      return sc.nextInt();  
   }  
}

解決策 1

「降順」が何を意味するか考えてみてください。それが正しい唯一の方法は、 a は最大数であり、 c 最小です。
したがって、その特定のケースを確認してください。

int inDescendingOrder(int a, int b, int c)
   {
   if ((a >= b) && (b >= c))
      return true;
   return false;
   } 

コメント

タイトルとURLをコピーしました