무브라더

[JAVA] 배열을 이용해서 로또번호 출력기를 만들기 본문

Programming/Java

[JAVA] 배열을 이용해서 로또번호 출력기를 만들기

동스다
반응형
SMALL

1. 코드를 짜기 전에 해야 할 일을 순서대로 정리하기

 

1) 로또번호는 6개니까 길이가 6개인 정수 타입의 변수를 생성한다.

2) 1~45 번호 중 하나를 뽑는다.

3) 만약 뽑은 번호가 중복이면 다시 뽑고 중복이 아니면 배열에 넣는다.

4) 6개 번호를 다 뽑을 때까지 반복한다.

5) 6개의 번호를 출력한다.

 

2. 정리한 순대로 코드 짜 보기

 

 

package array_package;

public class Lotto {

	public static void main(String[] args) {

		// 길이가 6개인 정수 타입의 변수를 생성하고 바로 초기화까지 해주자
		int[] lotto = new int[6];
		// lotto[0]
		// lotto[1]
		// lotto[2]
		// lotto[3]
		// lotto[4]
		// lotto[5]

		int idx = 0; // lotto[idx]

		// 중복된 숫자가 나올 수도 있기때문에 while문 사용
		while (true) { // Math.random은 0부터 1미만의 랜덤실수를 구해주는 기능을 한다.
			int num = (int) (Math.random() * 45 + 1);
			// 1을 더하는 이유는 0.xx와 45를 곱하면 45보다 적어지기때문이고 소숫점자리를 없애주기 위해 강제형변환을 해줬다

			boolean insert = true; //
			for (int i = 0; i < lotto.length; i++) {
				if (num == lotto[i]) {
					insert = false;
					break; // for문과 조건문을 사용해 중복된 숫자가 나오면 false로 변경해 로또 변수에 추가되지 않도록 한다.
				}
			}
			if (insert == true) {
				lotto[idx] = num;
				idx++; // break구문 덕분에 만약 위에서 중복된 숫자가 나왔다면 이 구문은 실행되지 않는다.
			}
			if (idx == 6) {
				break; // 길이는 6개이므로 인덱스는 0부터 5까지이다. 그러므로 6이되면 break 때문에 while문은 중단되게 된다.
			}
		}
		System.out.println("예상로또번호는"); // 출력
		for (int i = 0; i < lotto.length; i++) {
			System.out.println(lotto[i]); // 출력
		}
		System.out.println("입니다."); // 출력
	}

}

 

 

코드를 보니 너무 복잡하고 한눈에 들어오지 않는다..

검색해보니까 for문 만을 이용해서도 출력기를 만들 수 있었다.

다음엔 더 간결하고 보기 쉽게 짜 봐야겠다.

 

반응형
LIST
Comments