2017-12-29 11 views
0

친애 유래 커뮤니티 내가 repl.it에 하나 개의 작업으로 고투하고있다 (018) 조건문 4자바 (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로 끝나기 때문에 평등합니다. 잘못된 것입니다!

제 질문은 어떻게 입력 할 때 올바른 값을 출력 할 수 있도록 내 코드가 마지막 2 ~ 3 문자를 비교하도록 할 수 있습니까?

I 입력 어이가 인쇄해야하는 경우 :

-eys하지 -ies

타이를

+1

과제에 대한 사양 해석에 대한 몇 가지 여지가 있지만, 기본적으로 당신은 단지를 얻을 수있는'if' 절을 다시 준비 할 필요가 당신이 찾고있는 결과. –

답변

0

"ey"로 끝나는 부분은 "y"로 끝나는 부분이므로 두 번째 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의 마지막으로 else if(word.endsWith("y"))을 넣어했지만 당신이 if(word.endsWith("ey")) 일들이 잘되어야 조건 전에 한 그것의로 넣어 체인 어디 else if 내에서 정말 중요하지 않습니다.