너무 간단한 건데 아무도 답변을 안달아서, 달려고 쪼물락 거리다가 이번에도 감이 수상해서 새창 열어 확인했더니..
질문) 자바 string 비교
저건 q랑 d가같으면 이죠?
그런데 저렇게하면 단순히 값만 비교하게되는데 --> 빨간부분에서 질문의 내용이 완전 바뀜..
d 값이 1 이라면 --> 본래는 다를때 equals 표현은 어떻게 쓰는가 였음.
타인의 답변)
내 답변)
아래를 보면서 비교해 보세요.
1. CLASS
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String k1[] = {"a", "b", "c"};
// case1
System.out.print("비교할 대상이 'a' 이면 : ");
System.out.println();
if(k1[0].equals("a")){
System.out.println("1-1. 같으면");
}else if(!k1[0].equals("a")){
System.out.println("1-2. 같지 않으면");
}else{
System.out.println("1-3. 그 외");
}
if(k1[0] == "a"){
System.out.println("2-1. 같으면");
}else if(k1[0] != "a"){
System.out.println("2-2. 같지 않으면");
}else{
System.out.println("2-3. 그 외");
}
if("a" == "a"){ // 극단적인 비교를 위해..
System.out.println("3-1. 같으면");
}else if("a" != "a"){ // 극단적인 비교를 위해..
System.out.println("3-2. 같지 않으면");
}else{
System.out.println("3-3. 그 외");
}
// case2
System.out.print("\na, b, c 중 입력받으면 : ");
String in1 = sc.nextLine();
if(k1[0].equals(in1)){
System.out.println("1-1. 같으면");
}else if(!k1[0].equals(in1)){
System.out.println("1-2. 같지 않으면");
}else{
System.out.println("1-3. 그 외");
}
if(k1[0] == in1){
System.out.println("2-1. 같으면");
}else if(k1[0] != in1){
System.out.println("2-2. 같지 않으면");
}else{
System.out.println("2-3. 그 외");
}
if("a" == in1){
System.out.println("3-1. 같으면");
}else if("a" != in1){
System.out.println("3-2. 같지 않으면");
}else{
System.out.println("3-3. 그 외");
}
}
2. RUN
비교할 대상이 'a' 이면 :
1-1. 같으면
2-1. 같으면
3-1. 같으면
a, b, c 중 입력받으면 : a
1-1. 같으면
2-2. 같지 않으면
3-2. 같지 않으면
a, b, c 중 입력받으면 : b
1-2. 같지 않으면
2-2. 같지 않으면
3-2. 같지 않으면
결론은..
같은것과 같지 않을 것을 비교할 때는 조건문(if)의 첫번째 조건이 무조건 같은것으로 설정해 주면 됩니다.
if() ~ else if() ~ 같이 if 문을 switch case 처럼 쓰지 않는다면.. '!=' 이나 'not equals' 등은 어떻게 쓰든 의미가 없습니다.
// 저런식으로 질문을 바꿔버리면 답변을 채택했다 하더라도..
// 나중에 해당 질문을 조회한 사람은 왠 동문서답이냐고 생각하게되고, 답변을 단 지식인의 공신력에 흠집이 나게 된다.
// 내 답변 역시 수정 전의 질문에 맞춰서 만들어진 답변이다.
'course > 지식인' 카테고리의 다른 글
[자바] 2개의 기간사이 년월 출력.. (0) | 2016.03.29 |
---|---|
[자바] 아주 간단한거.. (0) | 2016.03.23 |
[자바] 2차원 배열을 메소드간 전달 시 문제 2가지. (0) | 2016.03.22 |