Java/Java

국비지원 자바 복습 4 (반복 문, 배열)

code2772 2022. 10. 4. 12:14
728x90
반응형

1. 반복문

- while문

while(조건식){

조건식의 결과가 true인 동안 반복할 문장;

...

}

int num = 10;

while(num >= 10){ //밑에서 후위연산 후 올라와서 빠진다.

System.out.println("num은 10보다 큽니다.");

//무한루프 때문에 중괄호가 필요하다.

num--;

}

(while)문제

1 ~ 100까지의 짝수의 총합을 구하는 프로그램을 작성

- for문

for(변수의 초기화; 조건식; 증감식){

조건식이 true인 동안 반복할 문장

}

for(int i=1; i <= 5; i++){

System.out.println("Hello Java!");

}

do ~ while문

while문과 동일하지만 첫 반복이 false인 경우 while문은 반복을 하지 않음, 하지만 do while문은

반복을 진행한 뒤 조건식을 판단함

while(조건식){ // 조건식이 false인 경우 빠저나간다. 기본적인 while문의 경우

문장........

}

do{

문장...

}while(조건식)

- continue문

반복이 진행되는 도중 continue문을 만나면 반복문의 끝으로 이동하여 다음 반복으로 시작됨

for(변수;조건식;증감식){

....1

....2

if(조건식) continue;

//if문의 조건식에 맞으면 continue에 따라 위로(반복문 시작점으로 올라간다)

....3

}

- break문

switch문 또는 반복문을 벗어날 때 사용

for(변수; 조건식; 증감식;){

...

...

if(조건식) break; // if문을 빠저나오는것이 아닌 반복문을 빠저나옴

...

}

 

✔ Math 클래스

자바에서 사용하는 수학 관련한 기능을 담고 있는 클래스

- random() : 임의의 실수(0 ~ 0.9999999..사이)를 출력

//Static이 붙어있으면 이미 메모리에 올라가 있기 때문에 객체선언간 new를 사용하지 않아도 된다.

double rn = Math.random(); //0.384654

rn * 10 // 3.84654

(int)(rn*10) // 3 (0~9)

(int)(rn*10) + 1 // 4 (1~10) -> random은 0.99999까지이기 때문이다.

1 ~ 45의 사이에 랜덤한 값을 추출

double rn = Math.random();

(int)(rn * 45) + 1 //0 ~ 45.39999 -> 45 강제형변환 하여 정수형으로 소수점은 없어지고 452

중첩 반복문

2개 이상의 반복문이 겹쳐저 있는 형태

while(조건식1){

조건식1이 true인 동안 반복할 문장;

...

while(조건식2){// false가 나올 떄 까지 계속 돈다

조건식2가 true인 동안 반복할 문장;

...

}

}

for(변수; 조건식1; 증감식){

조건식1이 true인 동안 반복할 문장;

...

for(변수; 조건식2; 증감식){// false가 나올 떄 까지 계속 돈다

조건식2가 true인 동안 반복할 문장;

...

}

}

 

2. 배열(Array) - 저장공간이 유동적이면 않된다. 모르겠으면 MAX치를 설정

 

- 변수는 한 개의 데이터만 저장하기 때문에 데이터의 수가 많아지면 그 만큼 많은 변수가 필요

- 동일한 데이터 타입의 변수를 연속적으로 생성

- 인덱스를 통하여 데이터에 접근

//stack에 변수를 저장하고 Heap에 주소를 저장하여 stack을 참조변수로 사용한다. 이 때 인덱스를 사용

// index 0부터 시작하는 숫자를 의미한다. 예를들어 0번 주소, 1번 주소 등

배열의 선언

데이터타입[] 배열이름; 

int[] arr; // 배열을 가르킬 데이터타입을 선언할 뿐(참조변)

배열의 메모리 할당

배열이름 = new 데이터타입[요소의 갯수];

arr = new int[10];//10개의 주속값을 만듬

배열의 선언 및 할당

데이터타입[] 배열이름 = new 데이터타입[요소의 갯수];

int[] arr = new int[10];

배열의 초기화

배열이름[인덱스번호] = 값;

arr[0] = 10;

과제1.

주사위 게임을 만들어보자.

1. 랜덤한 주사위 값을 뽑아 입력한 값과 일치하는지 확인

2. 값의 범위는 1~6까지로 함

3. 값을 맞출때 까지 무한루프를 사용

주사위를 던집니다

값을 입력하세요. 3

틀렸습니다. 값은 1입니다.

//무힌루프

주사위를 던집니다

값을 입력하세요. 2

맞췄습니다. 프로그램을 종료합니다.

과제2.

가위바위보(1,2,3) 게임을 만들어보자.

1. 랜덤한 주사위 값을 뽑아 입력한 값과 일치하는지 확인

2. 값의 범위는 1~3까지로 함

(문자비교를 해도됨)

3. 값을 맞출때 까지 무한루프를 사용

가위, 바위, 보 중 하나를 선택하세요. 가위

컴퓨토 : 바위

나 : 가위

젔습니다.

가위, 바위, 보 중 하나를 선택하세요. 가위

컴퓨토 : 보

나 : 가위

이겼습니다. 프로그램을 종료합니다.

 

과제3.

로또번호 추출 프로그램을 작성해보자.

1. 1 ~ 45까지 임의의 숫자 6개 추출

2. 번호는 중복되지 않아야 함

3. 출력시 오름차순 정렬

반응형