Java/생활코딩

생활코딩 JAVA 제어문

hs_developer 2022. 3. 15. 17:57

 

boolean

 

 

참과 거짓을 표현하는 데이터 타입

 

boolean 자체로는 큰 호용이 없지만 반복문, 조건문과 만나면 폭발적 효과를 낸다.

 

 

public class BooleanApp {
 
    public static void main(String[] args) {
         
        System.out.println("One");
        System.out.println(1);
         
        System.out.println(true);
        System.out.println(false);
         
        String foo = "Hello world";
        // String true = "Hello world"; reserved word
         
        System.out.println(foo.contains("world"));
        System.out.println(foo.contains("egoing"));
 
    }
 
}

 

 

// 결과 값

One
1
true
false
true
false

 

 

 


 

 

비교 연산자

 

 

Boolean 데이터 타입이 생성되는 비교 연산자

 

 

public class ComparisonOperatorApp {
 
    public static void main(String[] args) {
         
        System.out.println(1 > 1); 
        System.out.println(1 == 1); 
        System.out.println(1 < 1);
        System.out.println(1 >= 1);
         
    }
 
}

 

// 결과 값

false
true
false
true

 

 

 

 


 

 

조건문 형식

 

 

조건에 따라 다르게 동작하는 프로그램 디자인

 

 

public class IfApp {
	
	public static void main(String[] args) {
		
		System.out.println("a");
		if(false) {
			System.out.println(1);
		} else if(true) {
			System.out.println(2);
		} else {
			System.out.println(3);
		}
		System.out.println("b");
	}
}

 

// 결과 값

a
2
b

 

 

false는 실행되지 않는다.

 

 


 

 

조건문 응용 (1)

 

 

public class AuthApp {

	public static void main(String[] args) {
				
		String id = "egoing";
		String inputId = args[0]; // Run Configurations에서 설정
		
		System.out.println("Hi.");
		
//		if(inputId == id) { // 적용 안됨
		if(inputId.equals(id)) {
			System.out.println("Master!");
		} else {
			System.out.println("Who are you?");
		}
	}

}

 

 

// 결과 값

Hi.
Master!

 

 

 


 

조건문 응용 (2)

 

// 조건문 간결화 전

if(inputId.equals(id)) {
    if(inputPass.equals(pass)) {
        System.out.println("Master!");
    } else {
        System.out.println("Wrong password");
    }
} else {
    System.out.println("Who are you?");
}

 

// 조건문 간결화 후

if(inputId.equals(id) && inputPass.equals(pass)) {
    System.out.println("Master!");
} else {
    System.out.println("Who are you?");
}

 

 

 

// 전체 코드

public class AuthApp {
 
    public static void main(String[] args) {
         
        String id = "egoing";
        String inputId = args[0];
        
        String pass = "1111";
        String inputPass = args[1];
         
        System.out.println("Hi.");
         
        if(inputId.equals(id) && inputPass.equals(pass)) {
        	System.out.println("Master!");
        } else {
        	System.out.println("Who are you?");
        }
 
    }
 
}

 

// 결과 값

Hi.
Master!

 

 

 


 

문자의 비교: ==과 equals의 차이점

 

 

자바에서 문자나 객체를 비교할 때는 ==가 아닌 equals를 사용해야 한다.  그 이유와 equals의 의미를 살펴보자.

 

 

primitive (==)
= 쪼갤 수 없는 데이터
= boolean, int, double, short, long, float, char

non-pimitive (equals)
= 그 외의 데이터
= String, Array, Date, File..

 

String o1 = new String("java")
String o2 = new String("java")

o1 == o2 false가 나오게 된다. 둘은 다른 데이터를 가리키고 있기 때문이다.

 

 

String a = new String("pass");
String b = new String("pass");

System.out.println(a==b); // false
System.out.println(a.equals(b)); // true

 

 

많은 예제로 익숙해져야 할 듯

 

 

 


 

반복문

 

 

// while

int i = 0;
while(i < 3) {
    System.out.println(2);
    System.out.println(3);
    i++;
}

 

 

// for

for(int j=0; j < 3; j++) {
    System.out.println(2);
    System.out.println(3);
}

 

 

// 전체 코드

public class LoopApp {

	public static void main(String[] args) {
		
		System.out.println(1);
		System.out.println("===while===");
		int i = 0;
		while(i < 3) {
			System.out.println(2);
			System.out.println(3);
			i++;
		}
		
		System.out.println("===for===");
		for(int j=0; j < 3; j++) {
			System.out.println(2);
			System.out.println(3);
		}
		
		System.out.println(4);

	}

}

 

// 결과 값

1
===while===
2
3
2
3
2
3
===for===
2
3
2
3
2
3
4

 

 


 

배열

 

String[] users = new String[3];

 

String[] users 
= 문자열로 이루어져 있는 배열을 값으로 하는 users 변수

new String[3]; 
= 담고자 하는 배열의 크기 지정

 

System.out.println(users.length);

user 배열에 몇 개의 값이 담겨 있는지 확인

 

int[] scores = new int[3];
int[] scores = {10, 100, 100};

숫자로 이루여져 있는 배열을 값으로 하는 scores 변수

 

 

 

public class ArrayApp {
 
    public static void main(String[] args) {
         
        // egoing, jinhuck, youbin 
	// String users = "egoing, jinhuck, youbin";
        String[] users = new String[3];
        users[0] = "egoing";
        users[1] = "jinhuck";
        users[2] = "youbin";
         
        System.out.println(users[1]);
        System.out.println(users.length);
         
        int[] scores = {10, 100, 100}; // 원소, element
        System.out.println(scores[1]);
        System.out.println(scores.length);
 
    }
 
}

 

 

// 결과 값

jinhuck
3
100
3

 

 


 

반복문 + 배열

 

 

반복문과 배열은 서로를 필요로 한다. 

 

 

public class LoopArray {

	public static void main(String[] args) {
		
		String[] users = new String[3];
		users[0] = "egoing";
		users[1] = "jinhuck";
		users[2] = "youbin";
			
		for (int i=0; i<users.length; i++) { // 문자열 수가 바뀌어도 유동적으로 계산된다
			System.out.println(users[i]+",");
		}
	}

}

 

// 결과 값

egoing,
jinhuck,
youbin,

 

 

 

 


 

 

종합 응용(1)

 

 

사용자의 명단 이름 일치 시 결과물 출력

 

public class AuthApp3 {

	public static void main(String[] args) {
		
		String[] users = {"egoing", "jinhyuck", "youbin"};
		String inputId = args[0];
		
		boolean isLogined = false;
		for(int i=0; i<users.length; i++) {
			String currentId = users[i]; // 1개만 담을 때는 String
			if(currentId.equals(inputId)) {
				isLogined = true;
				break;
			}
		}
		
		System.out.println("Hi,");
		if(isLogined) {
			System.out.println("Master!!");
		} else {
			System.out.println("Who are you?");
		}
	}

}

 

 

 

// 결과 값

Hi,
Master!!

 

 

 


 

1. 사용자의 명단 이름 2. 비밀번호 일치 시 결과물 출력

 

public class AuthApp3 {
 
    public static void main(String[] args) {
    
        String[][] users = {
                {"egoing", "1111"},
                {"jinhuck", "2222"},
                {"youbin", "3333"}
        };
        String inputId = args[0];
        String inputPass = args[1];
         
        boolean isLogined = false;
        for(int i=0; i<users.length; i++) {
            String[] current = users[i]; // 2개 이상 담을 때는 String[]
            if(
                current[0].equals(inputId) && 
                current[1].equals(inputPass)
            ) {
                isLogined = true;
                break;
            }
        }
        System.out.println("Hi,");
        if(isLogined) {
            System.out.println("Master!!");
        } else {
            System.out.println("Who are you?");
        }
 
    }
 
}

 

 

// 결과 값

Hi,
Master!!

 

 

 

// 결과 값

Hi,
Who are you?

 

'Java > 생활코딩' 카테고리의 다른 글

생활코딩 JAVA 상속  (0) 2022.03.17
생활코딩 JAVA 객체 지향 프로그래밍  (0) 2022.03.16
메소드 Method  (0) 2022.03.16
인스턴스 Instance  (0) 2022.03.15
생활코딩 JAVA1  (0) 2022.03.06