본문 바로가기
Java/Java

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

by code2772 2022. 10. 4.

[ 목차 ]

    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. 출력시 오름차순 정렬

    반응형