2017-12-29 26 views
0

親愛なるStackOverflowのコミュニティ私はrepl.it上の一つのタスクに苦しんでいます(018)条件文4のJava(repl.it 018 - 条件付きステートメントの実践4)

だから彼らあなたの先生から

手順:あなたがするために :私はそれをやりたい

文字列変数「単語」を考えると、言葉が「Y」で終わる場合、次のテスト

を行い、 print "-ies" もしt彼の言葉は "ey"で終わり、 "-eys"を出力する 単語が "ife"で終わったら "-ives"を出力する 上記のいずれにも当てはまらない場合は、 "-s"を出力する 。

と私のコードは次のようになります。

import java.util.Scanner; 

class Main { 
    public static void main(String[] args) { 
    Scanner inp = new Scanner(System.in); 
    System.out.print("In:"); 
    String word = inp.nextLine(); 
    //DO NOT CHANGE ABOVE CODE! Write your code below 

    if(word.endsWith("y"){ 
     System.out.println("-ies"); 
    } 
    else if(word.endsWith("ey")){ 
     System.out.println("-eys"); 
    } 
    else if(word.endsWith("ife")){ 
     System.out.println("-ives"); 
    } 
    else{ 

     System.out.println("-s"); 
    } 
    } 
} 

私はそれを実行すると、たとえば、私の入力は次のとおりですねえ

そしてもちろん私のコードは、コードを通過し、最初の文があるかどうかを確認します正解です。最後はy = yであり、それは間違っているため、等しいです。

私のコードは、Heyを入力するときに正しい値を出力するように、私のコードが最後の2文字または3文字を比較できるようにする方法です。

私は入力ねえ、それはプリントアウトしなければならない場合は、次の

-eysなく-ies

のTyを

+1

あなたの割り当てのための仕様は、解釈の余地を残しますが、基本的にはあなただけ取得するには、 'if'句を再配置する必要がありますあなたが探している結果。 –

答えて

0

"ey"で終わるものは "y"で終わるサブセットなので、2番目のifは決して真ではありません。

変更最初の最も具体的にごテストの順番:

if(word.endsWith("ey"){ 
    System.out.println("-eys"); 
} 
else if(word.endsWith("y")){ 
    System.out.println("-ies"); 
} 
else if(word.endsWith("ife")){ 
    System.out.println("-ives"); 
} 
0

は、次のような条件を並べ替える:

if(word.endsWith("ey")){ 
    System.out.println("-eys"); 
} 
else if(word.endsWith("ife")){ 
    System.out.println("-ives"); 
} 
else if(word.endsWith("y")){ 
    System.out.println("-ies"); 
} 
else{  
    System.out.println("-s"); 
} 

これは私たちがホイストを意味します最も具体的な条件を以下に挙げる。

私はelse if秒の最後として​​を入れてきましたが、あなたはif(word.endsWith("ey"))物事は問題ないはず条件の前にいる限り、それはだとしてそれを置くの連鎖どこelse if内のそれは本当に問題ではありません。

関連する問題