[TIL] PowerJava chap3 - 조건문, 반복문, 배열

은동·2023년 1월 15일
0

JAVA_TIL

목록 보기
3/8
post-thumbnail

✔️ switch 문

		switch(제어식){
			case 1 :
    		실행될 문장;
    		break;
    
   			 ...
    
    		default :
    		실행될 문장;
    		break;
		}

제어식의 값에 따라 case 구조가 실행됨, 어느 것에도 해당되지 않으면 default 아래의 코드들이 실행됨
예를 들어 제어식의 값이 1이면 case 1이 실행되고 그 안에 있는 문장들을 실행한다.

switch 문에 문자열도 사용 가능하다.


✔️ 향상된 switch 문

Java 12 부터는 '화살표(->)'를 사용하는 향상된 switch문을 사용할 수 있다.

		switch(day) {
		case "SAT", "SUN" -> today = "WEEKEND";
		case "MON", "TUE", "WED", "THU", "FRI" -> today = "WEEKDAYS";
		default -> System.out.println("Error");
		}
		System.out.println(today);

case "SAT", "SUN" -> today = "WEEKEND"; 는 day가 "SAT" 또는 "SUN"이면 today에 "WEEKEND"를 저장하라는 것

따로 break;는 사용하지 않아도 된다.

✔️ continue 문

현재의 반복을 건너뛰고 다음 반복으로 넘어감

✔️ 배열의 선언

int[] s = new int[10];

+) 배열의 초깃값 :
숫자 배열 - 0으로 초기화, boolean배열 - false로 초기화, 문자열 배열 - null로 초기화

+) c언어와 달리 배열 생성 시 변수를 배열의 크기로 해도 됨

int size = 10;
int[] s = new int[size];

+) 배열의 크기 : s.length

+) 배열 선언과 동시에 초기화 : new연산자 필요 없이 배열 생성

int[] s = {10, 20, 30, 40, 50};

✔️ for-each 루프

배열의 각 요소가 순차적으로 대입됨

int num = {10, 20, 30};
for(int value : num)
	System.out.print(value +" ");

장점 : 배열의 크기에 신경쓰지 않아도 되고, 인덱스 값을 저장하는 변수를 생성할 필요도 없음

단점 : 배열의 요소의 값을 변경하는 경우에는 사용하지 못함

걍 이미 정해진 배열을 순차적으로 접근하고자 할 때만 사용하자

✔️ 이차원 배열

이차원 배열 선언

int[][] s = new int[3][5];

3행 5열의 요소를 가지는 2차원 배열을 선언한 것
s[1][3]은 이 이차원 배열의 인덱스에 해당하는 값을 의미한다


+) 이차원 배열의 초기화

int[][] testArray = {
		{10,20,30},
    	{40,50,60},
    	{70,80,90}
};

✔️ ArrayList

배열의 크기를 동적으로 변경하면서 사용 가능한 배열

  • 선언 방법
ArrayList<자료형> 배열 이름 = new ArrayList<>();
  • add()메소드를 호출하여 요소들을 리스트에 추가
list.add("Apple");
list.add("Grape");
  • 리스트 요소 삭제
list.remove(1); // 첫 번째 요소 삭제

✔️ 난수 생성시 사용하는 Math.random()

Math.ramdom()메소드는 0~1 사이의 난수를 발생시킨다. 즉 실수 랜덤값을 가져오는 것

그래서 0~100 사이의 랜덤값을 가져오고 싶을 때에는 Math.random()*100을 하면 되고, 0~1000 사이의 랜덤값을 가져오고 싶을 때에는 Math.random()*1000을 하면 된다.

		double num = Math.random();
		System.out.println(num);  //0~1 사이의 실수값 출력  
        
        int num = (int) (Math.random()*100);
		System.out.println(num); //0~100 사이의 정수값 출력
        
        int num = (int) (Math.random()*1000);
		System.out.println(num); //0~1000 사이의 정수값 출력
        
        int num = (int) (Math.random()*6)+1; // 1~6 사이의 정수값 출력

✔️ 조건문 문자열 비교

조건식에서 문자열을 비교할 때, '=='연산자가 아니라 .equals()를 사용해야 한다.

if(operator == "+") 

는 사용하면 우리가 원하는대로 조건 적용이 안된다.

if(operator.equals("+"))

이렇게 사용해야 제대로 적용됨

✔️ 거듭제곱 Math.pow() 메소드

double num = Math.pow(2,3);

num에는 2^3 = 8이 저장됨

profile
자자 선수입장~

0개의 댓글