불리언 데이터 타입 = true와 false
: 불리언 데이터 타입은 true와 false라는 구체적인 두 가지 데이터로 이루어진 데이터타입이다.
[참고]
예약어(reserved word)
:true와 false처럼 컴퓨터 언어에서 어떤 특정한 쓰임이 있는 키워드,
또는 앞으로 특정 기능으로 채택될 가능성이 있는 키워드들을 가리켜
컴퓨터 언어가 이것들을 사용하기로 예약돼 있다는 의미.
변수의 이름으로 사용 불가.
비교연산자
: 왼쪽에 있는 값과 오른쪽에 있는 값을 비교해서 그 결과가 무엇이냐에 따라 true 또는 false 중 하나의 값을 만들어 내는 연산자이다.
public class BooleanApp {
public static void main(String[] args) {
System.out.println(1 > 1); //false
System.out.println(1 == 1); //true
System.out.println(1 < 1); //false
System.out.println(1 >= 1); //true
}
}
프로그램이란 결국 입력(input)에 대해 순차적으로 반응해서 출력(output)을 만들어 내는 기계인데,
이 과정에서 조건문을 사용하게 되면 입력이 무엇이냐에 따라 프로그램이 다르게 동작하도록 만들어서 그에 따른 출력을 만들어 낼 수 있다
조건문 형식
: if키워드 뒤에 소괄호 안에 불리언 데이터 타입의 값이 오고, 그 값이 true냐 false냐에 따라 중괄호 안의 코드가 실행될 수도 있고 실행되지 않을 수도 있다
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");
}
}
*조건문 안에는 또 다른 조건문이 들어갈 수 있다
동등 비교 연산자 1==2
: 같은 곳을 가리키고 있는지 (값이 같은지) 확인하는 연산자
: 원시 데이터 타입을 비교할 때 사용
메서드 a.equals(b)
: 내용이 같은지 확인하는 메서드
: 원시 데이터 타입이 아닌 것을 비교할 때 사용

좌항과 우항에 모두 불리언 타입이 와야함
1AND연산자 &&
:왼쪽도 true, 오른쪽도 true면 전체 결괏값으로 true를 리턴한다
System.out.println(true && true); //true
System.out.println(true && false); //false
System.out.println(false && false); //false
2OR연산자 ||
:왼쪽과 오른쪽 중에 하나라도 true면 true를 리턴한다
System.out.println(true || true); //true
System.out.println(true || false); //true
System.out.println(false || false); //false
3NOT연산자 !
System.out.println(!true); //false
System.out.println(!false); //true
반복문 형식
:while키워드 뒤에 소괄호 안에 불리언 타입의 값이 오고, 그 값이 true면 중괄호 안의 코드가 실행되고, 실행이 끝나면 다시 소괄호 안의 값을 확인하길 반복한다.
"코드를 몇 번 반복 실행해"라고 지시할 때는 for문 사용
:for키워드 뒤에 소괄호 안에 세미콜론을 기준으로 세 부분(초깃값을 설정하는 코드; 반복을 더 해야할지 검사하는 코드; 반복이 진행될 때마다 실행해야 할 코드)으로 구성되고, 중괄호 안에 반복 실행할 코드를 작성한다.
i라는 변수는 반복문의 반복 횟수를 세는데 사용한다!!
public class LoopApp {
public static void main(String[] args) {
System.out.println(1);
int i = 0;
System.out.println("===while===");
while (i<3) {
System.out.println(2);
System.out.println(3);
i= i+1 ; //i++
}
System.out.println("===for===");
for (int i=0; i<3; i++) {
System.out.println(2);
System.out.println(3);
}
System.out.println(4);
}
}
배열
: 서로 연관된 데이터를 그루핑해서 이름을 붙이고 체계적으로 관리하는 환상적 도구
데이터 타입이 문자열로 이뤄진 배열인 변수를 만들고, 필요한 배열의 크기 지정하기.
(=3칸짜리 빈 캐비닛 만들기)
String[] users = new String[3];
배열에 데이터 담기
users[0] = "egoing";
users[1] = "jinhyuck";
users[2] = "youbin";
몇 칸짜리 배열인지 알아내기
System.out.println(users.length); //3
배열을 생성함과 동시에 데이터 담기
int[] scores = {10, 100, 100};
배열의 인덱스 (색인) : 0,1,2와 같은 자릿수
배열의 원소 : 배열을 구성하는 각 값

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]+",");
}
}
<1억명의 사용자가 로그인했을 때, 사용자의 계정이 명단에 있는지 인증하는 애플리케이션 만들기>
public class AuthApp3 {
public static void main(String[] args) {
String users[]= {"egoing","jinhuck","youbin"};
String inputId = args[0];
boolean isLogined = false;
for(int i=0; i<users.length; i++) {
String currentId = users[i];
if(currentId.equals(inputId)) {
isLogined = true;
break;
}
}
System.out.println("Hi,");
if(isLogined) {
System.out.println("Master!!");
} else {
System.out.println("Who are you?");
}
}
}
*break 키워드 : 반복문을 종료시키는 키워드*
+ 배열 안에 또 다른 배열이 들어가도록 만들기
각 원소가 또 다른 배열이고, 각 배열의 원소의 값이 String인 타입의 배열.
String[][] users = {
{"egoing","1111"};
{"jinhuck","2222"};
{"youbin","3333"};
}