gwooden_코린이

java_난수출력_221124(4일차) 본문

java/4일차

java_난수출력_221124(4일차)

gwooden22 2022. 11. 24. 11:47
728x90

난수 출력(랜덤 숫자)

 

package 배열;

 

public class Sample03 {

 

        public static void main(String[] args) {

              

               System.out.println(Math.random());

 

        }

 

}

 

결과값은 계속 바뀐다.

 

> 0 < 1 

0보다 크고 1보다 작은 식이라 위 처럼 결과가 유동적으로 출력된다.

 

System.out.println(Math.random()*10); <--- *10을 넣어주면

 

 

0 < 10

0부터 시작해서 10전까지 유동적으로 출력

 

System.out.println((int)(Math.random()*10)+1); 

 

*10만 하면 0 부터 9까지 소수점 까지 표기가 되는데

1 부터 10까지 소수점 없이 정수로 랜덤하게 표시 하려면 위 처럼 수식을 추가해줘야 된다,

소수점이 나오지 않기 위해 int 정수로 형변환을 해줘야 되고

+1까지 해줘야 *에서 설정한 값까지 출력된다.

 


★예제01

package 배열;

 

public class Sample03 {

 

        public static void main(String[] args) {

              

               //6개의 배열방에

               //난수 출력

              

               int[] lotto = new int[6]; //6 배열방 선언

               int i, j;

              

               for(i=0; i<6; i++) {

                      

                       lotto[i] = (int)(Math.random()*45)+1; //예를 들어서 배열방 0 값이 4 경우

                      

                       for(j=i-1; j>=0; j--) {//i

                             

                              // 번째 for문에서 조건식을 완료하면 증가 -> 감소

                              //조건식이 아니면 증가 -> 감소 -> 증가

                             

                              if(lotto[i] == lotto[j]) { // 방에 있는 값과 [j] 방에 있는 값이 같은가?

                                      i--; //같은 값일 경우 i 감소 시킨다.

                                      break; // 같으면 탈출해서 다시 번째 for문으로 이동 재시작

                              }

                             

                       }

                      

               }

              

 

                                      for(i=0; i<6; i++ ) {

                                              System.out.print(lotto[i] + " ");

                              }

        }

 

}




★예제02

(let's 자바 프로그래밍 책에 있는 내용)

 

package 배열;

 

public class Sample04 {

 

        public static void main(String[] args) {

              

               int[] lotto = new int[6]; //로또 번호 6개를 위한 6 배열방을 선언

              

               int idx = 0;

                              while(true) { //while문에 조건식이 참일 경우 계속 진행

                                      int number = (int)(Math.random()*45)+1; // 문단 부터 영역안에 있는 수식이 참일 경우 계속 반속

                                      //정수 'number' 변수 선언을 해주고

                                      //number 변수에 1 ~ 45까지 랜덤한 수를 저장할 있게                                                                     

                                     

                                      boolean insert = true; //boolean 'insert' 변수 하나 선언 insert 변수가 참일 조건완료

                                                                               //스위치 역할을 한다. 만약 fasle 진행 되다 다시 올라와도 초기화시켜 다시 true 시작

                                      for(int i = 0; i <= idx; i++) {//정수 'i' 변수  선언 i 부터 idx 까지 도달할 까지 실행

                                              if (lotto[i] == number) { //만약 lotto 배열방에 값은 number 랜덤변수와 같다.

                                                     insert = false; //insert 변수가 거짓이면

                                                     break; //멈춤

                                              }

                                      }

                                     

                                      if(insert == true) { //만약 insert 참과 같은 경우

                                              lotto[idx] = number; //lotto[idx] 4

                                              idx++;

                                      }

                                      if(idx == 6) break;

                              }

                             

                              //결과 출력용이라 나중에

                              for(int i = 0; i < lotto.length; i++) {

                                      System.out.print(lotto[i] + " ");

                              }

 

        }

 

}

728x90

'java > 4일차' 카테고리의 다른 글

java_객체지향 클래스_221124(4일차)  (0) 2022.11.24
java_2차원 배열_221124(4일차)  (0) 2022.11.24
java_정렬_221124(4일차)  (0) 2022.11.24
java_배열_221124(4일차)  (0) 2022.11.24
Comments