본문으로 바로가기

JAVA- 제어문

category 언어/JAVA 2019. 12. 2. 15:45

프로그래밍의 핵심은 시간의 흐름에 따라서 입력받아서 진행해야 한다.

예) 사용자 인증(로그인)

boolean 데이터타입

  • 참과 거짓을 표현하는 데이터 타입
  • 반복문조건문에 사용

예약어(reserved word) : 프로그램에서 미리 정의된 키워드

contains 메소드 : 문자열 포함 유무 확인

  • 특정 문자열이 포함되어 있는지 확인하는 기능을 수행
  • 특정 문자열이 포함되어 있다면 true를, 없다면 false를 반환
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";
     System.out.println(foo.contains("world"));
     System.out.println(foo.contains("cj"));
   }
}

[결과]

One

1

true

false

true

false

비교연산자

  • 두 개의 변수 또는 리터럴 상수를 비교하는데 사용되는 연산자
public class ComparisonOperatorApp {
   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
   }
}

조건문

  • 프로그래밍에 있어서 매우 중요
  • 조건문을 이용하여 조건의 참, 거짓에 따라 서로 따른 작업을 수행

조건문의 기본 형식

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);
        }
      }*/
      if(false) {
        System.out.println(1);
      } else if(true){
        System.out.println(2);
      } else {
        System.out.println(3);
      }
        System.out.println("b");
   }
}

조건문 응용

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

논리 연산자를 사용하기

public class AuthApp {
   public static void main(String[] args) {
      System.out.println(args[0]);     
      String id = "tv";
      String inputId = args[0];     
      String pass = "1111";
      String inputPass = args[1];         
      System.out.println("Hi.");

      //if(inputId == id) {
/*    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?");
      }    
   }
}

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

자바의 데이터 타입에는 크게 기본 타입(원시 타입: primitive type)참조 타입(reference type)으로 분류

img

기본 타입과 참조 타입으로 선언된 변수의 차이점

  • 기본타입을 이용해서 선언된 변수는 실제값을 변수 안에 저장
  • 참조타입을 이용해서 선언된 변수는 메모리의 번지를 값으로 갖는다.

==과 equals의 차이점

  1. 형태의 차이

    • equlas()는 객체끼리 내용(값)을 비교할 수 있는 메소드입니다.==는 객체의 참조(주소)값을 비교하는 연산자입니다.
  2. 비교방식의 차이

img

int로 선언된 변수 p1, p2가 있습니다.

두 변수 모두 1이라는 값을 저장하고 있습니다. 이처럼 기본 타입은 해당하는 값이 저장되어 있는 메모리공간을 가리킵니다. ==연산자를 사용해서 비교하면 true를 반환하게 됩니다.

String에 생성자를 통해서 참조형으로 값을 할당하게 되면 데이터 값이 같더라도 데이터를 가리키고 있는 주소값이 다르기 때문에 ==연산자로는 비교할 수 없습니다.

String에 기본 타입처럼 직접 값을 할당하게 되면 해당하는 값이 저장되어 있는 메모리공간을 가리키기 때문에 ==연산자로는 비교할 수 있습니다.

따라서 문자열 비교시에는 equals 메소드를 사용하는 것이 안전하고 보편적입니다.

반복문과 배열

반복문 : 조건에 따라서 프로그램이 반복적으로 일을 처리하도록 하는 핵심 메커니즘

반복문 종류

반복문은 크게 for문, while문, do~while문이 있습니다. for문은 주로 반복횟수를 알고 있을 때 사용되고

while 및 do~while문은 조건에 따라 계속 반복을 실행할 것인지를 결정할 때 사용됩니다.

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 = i + 1;
        //..
        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

배열 : 동일한 자료형의 데이터를 연속된 공간에 저장하기 위한 자료구조

배열의 장점

  • 연관된 데이터를 저장하기 위한 변수의 선언을 줄여준다.
  • 반복문 등을 이용하여 계산과 같은 과정을 쉽게 처리할 수 있다.
public class ArrayApp {
   public static void main(String[] args) {
      // hobin, jinhuck, youbin
//    String users = "hobin, jinhuck, youbin";
      String[] users = new String[3];
      users[0] = "hobin";
      users[1] = "jinbuck";
      users[2] = "youbin";     

      System.out.println(users[1]);     
      System.out.println(users.length); //배열의 길이     

      int[] scores = {10, 100, 100};
      System.out.println(scores[1]);
      System.out.println(scores.length);
   }
}

[결과]

jinbuck

3

100

3

img

반복문과 배열 응용

public class LoopArray {
   public static void main(String[] args) {
      /*
      \*  <li>hobin</li>
      \*  <li>jinhuck</li>
      \*  <li>youbin</li>
      \* */ 
       
      String[] users = new String[3];
      users[0] = "hobin";
      users[1] = "jinhuck";
      users[2] = "youbin";     

      for(int i=0; i<3; i++) {
        System.out.print(users[i]);
        if(i<users.length-1) {
          System.out.print(", ");
        }
      }
   }
}

[결과]

hobin, jinhuck, youbin

'언어 > JAVA' 카테고리의 다른 글

[인프런강의내용정리]상속에 대해서  (0) 2019.12.29
자바란  (0) 2019.11.30
javadoc이란?  (0) 2019.10.01
[MyBatis] include refid 사용하기  (0) 2019.09.25
protected 접근 제한자  (0) 2019.09.24