Java/JAVA 공부

[Java] 조건문에서 문자열 비교

웹개발자(진) 2024. 2. 5. 21:24
반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package chapter2;
import java.util.Scanner;
 
public class P0124_4 {
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scanner = new Scanner(System.in);
        System.out.println("아이디 입력:");
        String id = scanner.next();
        
        System.out.println("비밀번호 입력:");
        String pw = scanner.next();
        
        if(id.equals("java")) {
            if(pw.equals("java")) {
                System.out.println("로그인 되었습니다.");
            }
            else {
                System.out.println("비밀번호가 틀렸습니다.");
            }
        }
        else {
            System.out.println("회원이 아닙니다.");
        }
cs

 

해당 코드 조건문에서 if(id=="java")를 사용하면 안되는 이유

 

해당 코드를 사용하게 되면 항상 거짓으로 나오는데

객체 레퍼런스의 값을 비교하게 되기때문에 레퍼런스를 참조해서 "java"라는 값을 비교해야 되는데 주소인 id와 input을 비교하게 됨으로 거짓이 나오게 된다.

문자열을 비교하기 위해선 id.equls("java")형태로 비교해야 주소를 참조하여 값을 비교한다.

 


 

for문 원리

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package chapter3;
 
public class P0124_1 {
 
    public static void main(String[] args) { 
        // TODO Auto-generated method stub
        for(int i=1 ; i<=10; i++) {
            System.out.println(i);
        }
    }
 
}
 
for(int i=1 ; i<=10; i++)           #(__1__;__2__;__3__) 으로 번호 매기면
System.out.println(i);
                    #1번에서 시작값 초기화 2번에서 조건 확인 참이면 4번 갔다가 3번 갔다가 다시 2번으로
                    #2번 조건에서 거짓이 되면 for문 밖으로 나간다.
cs

 

반응형

'Java > JAVA 공부' 카테고리의 다른 글

[Java] while문 do-while문 차이점  (0) 2024.02.05
[java] 자바 기본 프로그래밍  (1) 2024.02.05