2017-02-25 8 views
-1

これはコードであり、完全に正常に動作します。しかし、私はちょうど1つのSOPステートメントを使用する必要があると私はそれを行う方法がわからない:(私はいくつかのsystem.out.printステートメントを使用しましたが、1つのsopステートメントを使用する必要があります

import java.util.Scanner; 
public class Lab4 
{ 
    public static void main(String args[]) 
    { 
     Scanner input=new Scanner(System.in); 
     String Expression; 
     int exp=0; 
     String Val1=null,Val2=null; 
     String Compute=null; 
     Expression=input.nextLine().trim(); 
     if(Expression.trim().contains("<")&&!Expression.trim().contains("=")) 
     { 
      exp=Expression.trim().indexOf("<"); 
      Compute="<"; 
      Val1=Expression.trim().substring(0, exp); 
      Val2=Expression.trim().substring(exp+1,Expression.trim().length()); 
     } 
     else if(Expression.trim().contains(">")&&!Expression.trim().contains("=")) 
     { 
      exp=Expression.trim().indexOf(">"); 
      Compute=">"; 
      Val1=Expression.trim().substring(0, exp); 
      Val2=Expression.trim().substring(exp+1,Expression.trim().length()); 
     } 
     else if(Expression.trim().contains("<=")) 
     { 
      exp=Expression.trim().indexOf("<="); 
      Compute="<="; 
      Val1=Expression.trim().substring(0, exp); 
      Val2=Expression.trim().substring(exp+2,Expression.trim().length()); 
     } 
     else if(Expression.trim().contains(">=")) 
     { 
      exp=Expression.trim().indexOf(">="); 
      Compute=">="; 
      Val1=Expression.trim().substring(0, exp); 
      Val2=Expression.trim().substring(exp+2,Expression.trim().length()); 
     } 

     int num1,num2; 
     num1=Integer.parseInt(Val1.trim()); 
     num2=Integer.parseInt(Val2.trim()); 
     if(Compute.equals("<")) 
     { 
      if(num1<num2) 
       System.out.println("True"); 
      else 
       System.out.println(""+num1+">="+num2+""); 
     } 
     else if(Compute.equals(">")) 
     { 
      if(num1>num2) 
       System.out.println("True"); 
      else 
       System.out.println(""+num1+"<"+num2+""); 
     } 
     else if(Compute.equals("<=")) 
     { 
      if(num1<=num2) 
       System.out.println("True"); 
      else 
       System.out.println(""+num1+">="+num2+""); 
     } 
     else if(Compute.equals(">=")) 
     { 
      if(num1>=num2) 
       System.out.println("True"); 
      else 
       System.out.println(""+num1+"<"+num2+""); 
     } 
    } 
} 
+1

は、単一の 'message'で文字列を作成します(または' StringBuilder'を使用);プリント**ことをして、** –

+0

ので、このプログラムは、関係演算子を使って2つの値を比較することですので。あなたが言った声明、どのように私はその卿を使用するのですか? – shifa

+0

* ElliottFrisch:* 'String message'ローカル変数を宣言し、' System.out.println(xxx); 'ステートメントを' message = xxx; 'に変更し、' System.out.println(message); 'を実行します。終わり。 'StringBuilder'の必要はありません。 --- *無関係:* '" "+ num1 +"> = "+ num2 +" "は' num1 + "> =" + num2 "と同じです。そこに空の文字列を連結する必要はありません。 – Andreas

答えて

0

あなたのprintln呼び出しを変更し、代わりにあなたのifブロック内の単一String messageを割り当て、その後そのメッセージを印刷することができ。何かのように、

String message = ""; 
int num1 = Integer.parseInt(Val1.trim()); 
int num2 = Integer.parseInt(Val2.trim()); 
if (Compute.equals("<")) { 
    if (num1 < num2) 
     message = "True"; 
    else 
     message = "" + num1 + ">=" + num2; 
} else if (Compute.equals(">")) { 
    if (num1 > num2) 
     message = "True"; 
    else 
     message = "" + num1 + "<=" + num2; 
} else if (Compute.equals("<=")) { 
    if (num1 <= num2) 
     message = "True"; 
    else 
     message = "" + num1 + ">" + num2; 
} else if (Compute.equals(">=")) { 
    if (num1 >= num2) 
     message = "True"; 
    else 
     message = "" + num1 + "<" + num2; 
} 
System.out.println(message); 
+0

ありがとうございました!出来た :) – shifa

関連する問題