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 |