728x90
반응형

<오늘의 학습>

1. 추상클래스

2. 인터페이스

3. 패키지

4. Object 클래스

5. Wrapper 클래스

6. String 객체

7. Math 클래스

 

 

6.  String 객체

▶ 특징

  1. 스트링 생성 방법 - 리터럴로 생성
    • String s = "Hello";
    • JVM이 리터럴을 관리하여 응용프로그램 내에서 공유된다.
  2. String 객체로 생성 - String t = new String("Hello");
    • 힙 메모리에 String 객체 생성
  3. 스트링 객체는 수정이 불가능하다.
  4. 스트링 비교 시 반드시 equals()를 사용해야 한다.
    • equals()로 내용을 비교한다.

 

 

주요 메소드

메소드 설명
char charAt(int index) intdex 인덱스에 있는 문자 값 리턴
int codePointAt(int index) index 인덱스에 있는 유니코드 값 리턴
int length() 스트링의 길이(문자 개수) 리턴
int compareTo(String anotherString) 두 스트링을 사전 순으로 비교하여 두 스트링이 같으면 0, 현 스트링이 anotherString보다 먼저 나오면 음수, 아니면 양수를 리턴
boolean contains(CharSequence s) s에 지정된 문자들을 포함하고 있으면 true 리턴
String replace(charsequence target, Charsequence replacement) target이 지정하는 일련의 문자들을 replacement가 지정하는 문자들로 변경한 스트링 리턴
String[] split(String regex) 정규식 regex에 일치하는 부분을 중심으로 스트링을 분리하고, 분리된 스트링들을 배열로 저장하여 리턴
String trim() 스트링 앞뒤 공백 문자들을 제거한 스트링 리턴.(\t,\n 포함)
String subString(int beginIdex) beginIndex 인덱스부터 시작하는 서브 스트링 리턴
String toLowerCase() 소문자로 변경한 스트링 리턴
String toUpperCase() 대문자로 변경한 스트링 리턴
String concat(String str) 현재 스트링 뒤에 str 스트링을 덧붙인 새로운 스트링 리턴

 

 

 

7.  Math 클래스

▶ 산술 연산 메소드 제공 - java.lang.Math

  • 모든 메소드는 static 타입 : 클래스 이름으로 바로 호출해야 한다.

 

 

▶ 주요 메소드

메소드 설명
static double max(double a, double b) 두 수 a, b 중에서 큰 수를 리턴
static double min(double a, double b) 두 수 a, b 중에서 작은 수를 리턴
static double abs(double a) 실수 a의 절댓값 리턴
static double random() 0.0보다 크거나 같고 1.0보다 작은 임의의 실수를 리턴
static double cos(double a) 실수 a의 cosine 리턴
static double sin(double a) 실수 a의 sine 리턴
static double tan(double a) 실수 a의 tangent 리턴
static double sqrt(double a)
실수 a의 제곱근 리턴
static double exp(double a) e^a 값 리턴
static double ceil(double a) 자릿수 올림. 실수 a보다 크거나 같은 수 중에서 가장 작은 정수를 실수 타입으로 리턴
static double floor(double a) 자릿수 내림. 실수 a보다 작거나 같은 수 중에서 가장 큰 정수를 실수 타입으로 리턴
static long round(double a) 반올림. 실수 a를 소수 첫째 자리에서 반올림한 정수를 long타입으로 반환

 

 

▶ Math 클래스를 활용한 난수 발생

  • java.util.Random 클래스 사용 
  • Random 구구단 실습 예제
 

[JAVA] 배열과 Random (5일차)

1. 배열 2. 이차원 배열 3. 삼차원 배열 4. Random 1. 배열 ▶ 자료형이 같은 자료 여러 개를 한 번에 관리할 수 있으며, 자료가 연속으로 나열된 자료 구조이다. 즉, 동일 자료형의 기억장소 집합체를

deliciouscode.tistory.com

 

  • LOTTO 실습 예제
 

[JAVA] Math.random()을 이용한 LOTTO

문제 로또 번호를 입력 받아 로또 당첨 여부를 확인하시오. 6개를 다 맞추면 1등, 5개를 맞추고 보너스 번호까지 맞추면 2등, 5개만 맞추면 3등, 4개를 맞추면 4등, 3개를 맞추면 5등이다. ▶ 제한사

deliciouscode.tistory.com

 

 

 

단축키

alt+shift+a : 수정 모드로 전환. 여러 줄을 한 번에 수정할 수 있다.

alt+shift+r : 같은 단어를 한 번에 수정할 수 있다.

 

 

 

 


2023년 6월 5일 월요일

<15일차 수업 후기>

드디어 너무나도 배우고 싶었던 자바의 메소드를 학습했다. 당연히 전부 외우면 좋겠지만 다 외우기 어려울 수 있다고 중요한 개념을 몇 개 말씀해주셨다.

그동안 메소드를 많이 알지 못해서 속상하다고 후기에 많이 썼는데 여러 실습들과 오늘의 수업으로 조금은 익숙해진 것 같다. 메소드를 자연스럽게 사용하기 위해서 오늘 배운 내용을 열심히 복습하자.

728x90
반응형
728x90
반응형

문제

  • Random 함수를 이용한다.
  • 정수형 변수 num에 랜덤 값을 넣는다.
  • 숫자를 입력하여 num의 값과 같은지 비교한다. 입력한 숫자가 num의 값보다 작으면 UP, 크면 DOWN을 출력한다.
  • 사용자가 입력한 값과 num의 값이 같으면 몇 번의 입력만에 정답을 입력했는지 출력한다.

 

 

 

코드

		Random rand = new Random();
		Scanner scan = new Scanner(System.in);

		int num = rand.nextInt(100)+1;	//랜덤 값:1~100
		
		for(int count=1;;count++){ //count 변수를 이용해 몇 번만에 맞추는지 확인
			//숫자 입력
			System.out.printf("1부터 100사이의 랜덤한 숫자를 입력하세요 >> ");
			int temp = scan.nextInt();

			//정답 판별
			if(temp==num){
				System.out.printf("정답입니다! %d번 만에 맞추셨습니다.\n",count);
				break;	//반복 종료
			}
			else if(temp<num)
				System.out.println("UP");
			else if(temp>num)
				System.out.println("DOWN");
			
			System.out.println();//줄바꿈
		}

		scan.close();

 

 

 

출력 결과

1부터 100사이의 랜덤한 숫자를 입력하세요 >> 50
UP

1부터 100사이의 랜덤한 숫자를 입력하세요 >> 75
UP

1부터 100사이의 랜덤한 숫자를 입력하세요 >> 88
UP

1부터 100사이의 랜덤한 숫자를 입력하세요 >> 95
DOWN

1부터 100사이의 랜덤한 숫자를 입력하세요 >> 92
DOWN

1부터 100사이의 랜덤한 숫자를 입력하세요 >> 90
UP

1부터 100사이의 랜덤한 숫자를 입력하세요 >> 91
정답입니다! 7번 만에 맞추셨습니다.

 

728x90
반응형
728x90
반응형

문제

  • Random 함수를 이용한다.
  • 무한 반복문을 이용한다.
  • 몇 문제를 풀 것인지 입력 받고, 입력 받은 숫자만큼 문제를 출력한다.
  • 정수형 변수 num1과 num2에 랜덤 값을 넣는다.
  • num1의 값과 num2의 값을 곱한 결과와 사용자가 입력한 값이 같은지 비교하여 정답과 오답을 출력한다.
  • 모든 문제가 종료된 뒤 0을 입력하면 break문을 이용해 무한 반복문을 입력을 종료한다. 0 외의 숫자를 입력하면 다시 문제 수를 입력 받는다.

 

 

 

코드

		//곱셈 문제
		Random rand = new Random();	//랜덤 값
		Scanner scan = new Scanner(System.in);	//입력

		int first=1;//문제를 구분하는 선을 출력하기 위해 선언
		while(true){
			if(first!=1)//문제를 구분하기 위해 출력. 문제 풀이를 두 번 이상 반복할 때 출력
				System.out.println("-------------------------------------------------------------------");
			first=0;
			
			System.out.print("문제 수를 입력하시오 >> ");
			int work = scan.nextInt();
			System.out.println("총 "+work+"문제가 출력됩니다.\n");
			
			for(int i=1;i<=work;i++){
				//곱셈 값 만들기
				int num1 = rand.nextInt(8)+2;	// 2단부터 9단까지 출력	
				int num2 = rand.nextInt(9)+1;	// 1부터 9까지 출력
				int multiplication = num1*num2;	//곱셈의 정답을 저장하는 변수

				System.out.printf("%d번 문제:%d*%d=",i,num1,num2);	//랜덤 문제 출력

				//정답 맞추기
				int check = scan.nextInt();	//입력한 값이 정답이 맞는지 확인하는 변수

				if(check==multiplication)
					System.out.println("정답입니다.");
				else
					System.out.printf("오답입니다.정답은 %d입니다.\n",multiplication);
				System.out.println(); //한 문제가 끝나면 줄바꿈
			}
			
			//문제 종료
			int question = 1;
			System.out.print("계속해서 문제를 푸시겠습니까? 종료를 원하시면 0을 입력해주세요. >> ");
			question =scan.nextInt();

			if(question== 0)
				break;	//무한 반복 종료

		}
		System.out.println("수고하셨습니다. 문제 풀이가 종료되었습니다.");
        
		scan.close();

 

 

출력 결과

문제 수를 입력하시오 >> 2
총 2문제가 출력됩니다.

1번 문제:7*2=14
정답입니다.

2번 문제:4*5=22
오답입니다.정답은 20입니다.

계속해서 문제를 푸시겠습니까? 종료를 원하시면 0을 입력해주세요. >> 1
-------------------------------------------------------------------
문제 수를 입력하시오 >> 1
총 1문제가 출력됩니다.

1번 문제:2*8=16
정답입니다.

계속해서 문제를 푸시겠습니까? 종료를 원하시면 0을 입력해주세요. >> 0
수고하셨습니다. 문제 풀이가 종료되었습니다.

 

728x90
반응형
728x90
반응형

문제

로또 번호를 입력 받아 로또 당첨 여부를 확인하시오.

6개를 다 맞추면 1등, 5개를 맞추고 보너스 번호까지 맞추면 2등, 5개만 맞추면 3등, 4개를 맞추면 4등, 3개를 맞추면 5등이다.

 

▶ 제한사항

  • 로또 번호는 1부터 45까지의 값에서만 나온다.
  • 로또는 직접 입력하거나, 랜덤으로 입력받을 수 있다.
  • 로또 번호는 중복된 번호가 나올 수 없다.
  • random() 함수를 이용한다.

 

 

코드

1. 로또 번호를 수동으로 선택할지, 자동으로 선택할지 선택

		int num[]=new int[6]; //로또 번호 6개 선택
		Scanner scan=new Scanner(System.in);

		System.out.println("★★★★★★★★★★★로또 당첨을 기원합니다★★★★★★★★★★★");
		System.out.println("----------------------------------------");

		int automatic=2;
		//로또 번호 수동/자동 출력 선택
		while(true){
			System.out.print("수동을 원하시면 0, 자동을 원하시면 1을 입력하세요 >> ");
			automatic=scan.nextInt();

			if(automatic==0 || automatic==1)
				break; //무한 루프 종료
			else
				System.out.println("잘못 입력하셨습니다.다시 입력해주세요.");
		}

 

 

2-1. 수동으로 로또 번호 입력

		if(automatic==0){
			System.out.println("----------------------------------------");
			for(int i=0;i<num.length;i++){
				System.out.printf("%d번 로또 번호를 입력하세요:",i+1);
				num[i]=scan.nextInt();
				if(num[i]<=0 || num[i]>45){ //잘못 입력했을 때
					System.out.println("\n1부터 45까지의 숫자를 입력해주세요.");
					i--;
				}
				else{
					for(int j=0;j<i;j++){
						if(num[i]==num[j]){ //같은 값이 들어가면 무효화
							System.out.printf("\n%d는 이미 입력하셨습니다.다시 입력해주세요.\n",num[j]);
							i--;
							break;//inner_for_out
						}
					}//inner_for_end
				}
			}//out_for_end
		}

 

2-2. 자동으로 로또 번호 입력

		else{
			for(int i=0;i<num.length;i++){
				num[i]=(int)(Math.random()*45+1);
				for(int j=0;j<i;j++){
					if(num[i]==num[j]){ //같은 값이 들어가면 무효화
						i--;
						break;//inner_for_out
					}
				}//inner_for_end
			}//out_for_end
		}

 

 

3. 로또 번호와 보너스 번호를 랜덤으로 저장

		//랜덤 로또 번호
		int lotto[]=new int[7]; //마지막은 보너스 번호

		for(int i=0;i<lotto.length;i++){
			lotto[i]=(int)(Math.random()*45+1);
			for(int j=0;j<i;j++){
				if(lotto[i]==lotto[j]){//같은 값이 들어가면 무효화
					i--;
					break;//inner_for_out
				}
			}//inner_for_end
		}//out_for_end

 

 

4. 로또 번호 출력

		//출력
		System.out.println("----------------------------------------");
		System.out.print("당신의 로또 번호:");
		for(int i=0;i<num.length;i++){
			System.out.print(num[i]+" ");
		}
		System.out.println(); //줄바꿈
		
		System.out.print("로또번호:");
		for(int i=0;i<lotto.length-1;i++)
			System.out.print(lotto[i]+" ");

		System.out.println("\n보너스번호:"+lotto[lotto.length-1]);
		System.out.println("----------------------------------------");

 

 

5. 로또 당첨 여부 확인

		int count=0; //맞춘 번호 숫자 카운트
		int bonus=0; //보너스 번호를 맞추지 못하면 0. 보너스 번호를 맞추면 1
		
		System.out.print("맞추신 번호:");
		for(int i=0;i<num.length;i++){
			//보너스 번호 빼고 6개의 번호 확인
			for(int j=0;j<lotto.length-1;j++){ 
				if(num[i]==lotto[j]){
					System.out.print(num[i]+" ");//맞춘 번호 출력
					count++;
				}
			}//inner_for_end
            
			//보너스 번호 일치 여부 확인
			if(num[i]==lotto[lotto.length-1])
				bonus=1;
		}//out_for_end
		
		if(count==0) //당첨된 번호가 하나도 없으면 "없음" 출력
			System.out.print("없음");
		System.out.println(); //줄바꿈

 

 

6. 로또 등수 출력

		//당첨 여부 출력
		switch(count){
		case 6:
			System.out.printf("%d개를 맞추셨습니다.1등입니다!!!\n", count);
			break;
		case 5:
			if(bonus==1)
				System.out.printf("%d개와 보너스 번호를 맞추셨습니다.2등입니다!!\n", count);
			else
				System.out.printf("%d개를 맞추셨습니다.3등입니다!!\n", count);
			break;
		case 4:
			System.out.printf("%d개를 맞추셨습니다.4등입니다!!\n", count);
			break;
		case 3:
			System.out.printf("%d개를 맞추셨습니다.5등입니다!!\n", count);
			break;
		default:
			System.out.printf("%d개를 맞추셨습니다.다음에 다시 도전해보세요^^",count);
		}

 

 

 

출력 결과

1. 수동 입력

★★★★★★★★★★★로또 당첨을 기원합니다★★★★★★★★★★★
------------------------------------------------------------
수동을 원하시면 0, 자동을 원하시면 1을 입력하세요 >> 0
------------------------------------------------------------
1번 로또 번호를 입력하세요:5
2번 로또 번호를 입력하세요:5

5는 이미 입력하셨습니다.다시 입력해주세요.
2번 로또 번호를 입력하세요:46

1부터 45까지의 숫자를 입력해주세요.
2번 로또 번호를 입력하세요:43
3번 로또 번호를 입력하세요:22
4번 로또 번호를 입력하세요:13
5번 로또 번호를 입력하세요:39
6번 로또 번호를 입력하세요:7
------------------------------------------------------------
당신의 로또 번호:5 43 22 13 39 7 
로또번호:14 16 15 27 28 21 
보너스번호:19
------------------------------------------------------------
맞추신 번호:없음
0개를 맞추셨습니다.다음에 다시 도전해보세요^^

 

2. 자동 입력

★★★★★★★★★★★로또 당첨을 기원합니다★★★★★★★★★★★
------------------------------------------------------------
수동을 원하시면 0, 자동을 원하시면 1을 입력하세요 >> 1
------------------------------------------------------------
당신의 로또 번호:14 10 19 35 43 9 
로또번호:30 14 10 45 12 21 
보너스번호:44
------------------------------------------------------------
맞추신 번호:14 10 
2개를 맞추셨습니다.다음에 다시 도전해보세요^^

 

728x90
반응형
728x90
반응형

<오늘의 학습>

1. 배열

2. 이차원 배열

3. 삼차원 배열

4. Random

 

 

1. 배열

자료형이 같은 자료 여러 개를 한 번에 관리할 수 있으며, 자료가 연속으로 나열된 자료 구조이다. 즉, 동일 자료형의 기억장소 집합체를 표현한다.

  1. int a=10; //변수(단독 주택에 비유)
    int b=20;
    int c=30;
  2. int arr[] = new int[3]; //배열(아파트에 비유)
    arr[0]=10;
    arr[1]=20;
    arr[2]=30;

 


1) 배열의 특징

  1. 배열의 장점 : 자료를 일괄 처리할 수 있다.
  2. 배열 순서는 0번부터 시작한다.
  3. 지역변수라도 자동 초기화가 된다.
  4. 배열은 new 연산자를 사용하여 생성한다. ex) int arr[]=new int[3];
  5. new연산자는 heap영역에 메모리를 할당받는다.
  6. cf(일반변수) : stack영역에 변수를 할당한다.
  7. 배열,클래스:new 연산자를 사용하여 heap 영역에 메모리를 할당받기 때문에 레퍼런스 자료형이라고 한다.
        ex) Test01 test01=new Test01[];
               └레퍼런스 변수(클래스 변수)&인스턴스&객체
  8. Garbage Collection(가비지 컬렌션) : 쓰레기 수집기
       - JVM에는 Garbage Collector가 존재한다.
       - 가비지 컬렉터는 더 이상 참조되지 않는 Garbage라고 불리는 불필요한 메모리를 알아서 정리해주는 역할을 한다.

 

  • stack영역 : 정적변수가 할당 됨(일반변수 선언,메서드가 포함됨)
  • heap영역 : 동적변수가 할당 됨(new 객체생성, new 배열생성)
  • 가비지 컬렉션 : JVM의 RunTime Data Area에서 사용하지 않은 heap메모리의 내용을 삭제하는 것.

 

 


2) 배열 선언 형식

  • 자료형[] 배열명;
  • 자료형 배열명[];
     배열명 = new 자료형[요소 갯수]; //위에서 선언 후 요소 갯수 넣기
    ex) int arr[];
           arr=new int[3];

  • 자료형[] 배열명 = new 자료형[요소갯수]; //선언과 동시에 생성
    ex) int arr[]=new int[3];

  • 자료형 배열명[]={초기값,초기값,,,}; //선언과 동시에 초기값을 준다
    ex) int a[]={10,20,30};

 

 


 예제) 배열 선언 및 값 초기화

		int a[]={10,20,30};
		for(int i=0;i<a.length;i++){
			System.out.printf("a[%d]:%d\n",i,a[i]);
		}
a[0]:10
a[1]:20
a[2]:30

 

 


 예제) 배열의 자동 초기화

	int max=1000;
	int hi=3;
	static int a;

	public static void main(String[] args) {
		//main()메서드가 static되어 있기 때문에 main()안에서는 static이 붙은 전역변수만 사용 가능함
		//main()안에서 객체 생성하면 static으로 선언하지 않아도 사용이 가능함

		int max=100;
		Practice p=new Practice();

		System.out.println(p.max);	//전역 변수 1000
		System.out.println(max);	//지역 변수 100
        
		System.out.println(a);	//0 출력. 전역 변수 a는 자동 초기화된다.
		int b; //지역 변수 b는 자동초기화가 되지 않는다.
		System.out.println(b); //오류. 지역 변수는 자동초기화가 되지 않는다.

		int c[]=new int[3];
		System.out.println(c[0]);	//0 출력. 배열은 자동으로 초기화된다.
		
	}//main_end
1000
100
0
0
  1. 전역변수:메서드 밖에서 선언된 변수로 자동으로 값이 초기화된다.
  2. 지역변수:자동으로 값이 초기화되지 않는다.
  3. 배열:지역변수일지라도 자동으로 초기화가 된다.
     

 


 예제) 배열끼리의 값 할당

		int a[]={10,20,30};
		int b[];//선언
		b=a;//a값을 b에 할당
		
		for(int i=0;i<a.length;i++){
			System.out.printf("a[%d]:%d, b[%d]:%d\n",i,a[i],i,b[i]);
		}
a[0]:10, b[0]:10
a[1]:20, b[1]:20
a[2]:30, b[2]:30

 

 

 

2. 이차원 배열

  • 행렬을 이용하여 평면을 구현하기 위한 배열
  • 이차원 이상으로 구현한 배열을 다차원 배열이라고 한다.
		int a[][]={{10,20},{30,40,50}};
		System.out.println("배열 a의 행 갯수:"+a.length);
		System.out.println("a[0] 열 갯수:"+a[0].length);
		System.out.println("a[1] 열 갯수:"+a[1].length);
배열 a의 행 갯수:2
a[0] 열 갯수:2
a[1] 열 갯수:3

 

 


 예제) 이차원 배열 출력

		int row,column;
		for(row=0;row<a.length;row++){
			for(column=0;column<a[row].length;column++){
				System.out.print(a[row][column]+" ");
			}//inner_for_end
			System.out.println();//줄바꿈
		}//for_end
10 20 
30 40 50

 

▷ 위 예제에서 행렬 표시

		for(row=0;row<a.length;row++){
			for(column=0;column<a[row].length;column++){
				System.out.printf("a[%d][%d]:%d\n",row,column,a[row][column]);
			}//inner_for_end
			System.out.println();//줄바꿈
		}//out_for_end
a[0][0]:10
a[0][1]:20

a[1][0]:30
a[1][1]:40
a[1][2]:50
a[0] 10 20  
a[1] 30 40 50

 

 


 예제) 이차원 배열 내용 출력

		double ki[][]={{162.5,175.5},{163.7,188.8}};

		for(int i=0;i<ki.length;i++){
			for(int j=0;j<ki[i].length;j++){
				System.out.print(ki[i][j]+"\t");
			}//inner_for_end
			System.out.println();
		}//out_for_end
162.5	175.5	
163.7	188.8

 

 

 

3. 삼차원 배열

 예제) 삼차원 배열 출력

		/*삼차원 배열 출력
		abc
		def

		ghi 
		jkl
		 */
		
		char c[][][]={
				{{'a','b','c'},{'d','e','f'}},
				{{'g','h','i'},{'j','k','l'}}
		};
        
		//출력
		for(int i=0;i<c.length;i++){
			for(int j=0;j<c[i].length;j++){
				for(int k=0;k<c[i][j].length;k++){
					System.out.print(c[i][j][k]);;

				}
				System.out.println();
			}
			System.out.println();
		}
abc
def

ghi
jkl

 

위 예제에서 선언할 때 값을 넣지 않고 'a'부터 'l'까지 초기 값을 넣어서 출력

		char arr[][][]=new char[2][2][3];
        
		//abc/def/ghi/jkl 초기값 넣기
		char ch='a';
		for(int i=0;i<arr.length;i++){
			for(int j=0;j<arr[i].length;j++){
				for(int k=0;k<arr[i][j].length;k++){
					arr[i][j][k]=ch;
					ch++;
				}
			}
		}
        
		//출력
		for(int i=0;i<arr.length;i++){
			for(int j=0;j<arr[i].length;j++){
				for(int k=0;k<arr[i][j].length;k++){
					System.out.print(arr[i][j][k]);;

				}
				System.out.println();
			}
			System.out.println();
		}
abc
def

ghi
jkl

 

 

 

4. Random

  • Math 참고 사이트 : https://docs.oracle.com/javase/1.5.0/docs/api/
  • 0 < Math.random() < 1
  • Math.random()*갯수+나올 수 있는 가장 작은 수
  • Math.random()*(큰 수-작은 수+1) +1 : 1부터 값이 시작될 때 큰 수와 작은 수 값을 이용할 수도 있다.
  • Math.random() 은 double형으로 출력되기 때문에 정수형으로 받고 싶다면 정수형으로 강제 형변환을 해주어야 한다.

 

 


 예제) 주사위 값을 랜덤으로 5번 출력

		/*
		int a=(int)(Math.random()*가지수+나올 수 있는 가장 작은 수);

		주사위가 나올 수 있는 총 숫자:6개
		int a=(int)(Math.random()*6+1); // 1~6까지의 랜덤 숫자가 a에 저장된다.
		 */

		//주사위 5번 돌리기
		for(int i=0;i<5;i++){
			int random_num=(int)(Math.random()*6+1);
			System.out.println(random_num);
		}
5
1
5
3
1

 

 


 예제) 로또 번호를 랜덤으로 출력

		/*랜덤 로또 번호(1~45) 출력*/
		int lotto[]=new int[6];//선언&생성

		for(int i=0;i<lotto.length;i++){
			lotto[i]=(int)(Math.random()*45+1);
			for(int j=0;j<i;j++){
				if(lotto[i]==lotto[j]){//이미 나온 값이 들어가면 무효화. 다시 랜덤 출력
					i--;
					break;//inner_for_out
				}//if_end
			}//inner_for_end
		}//out_for_end

		//출력
		System.out.print("로또 번호:");
		for(int i=0;i<lotto.length;i++)
			System.out.print(lotto[i]+" ");
로또 번호:38 5 13 23 6 20

 

 

 

 

 


2023년 5월 18일 목요일

<5일차 수업 후기>

예전에 C언어를 배울 때, rand() 함수를 이용해서 랜덤 값을 받아왔던 적이 있었다. C언어에서는 srand 함수와 time 함수를 이용하지 않으면 랜덤 값이 매번 똑같이 출력됐는데 JAVA에서는 다른 함수를 추가로 사용하지 않아도 값이 계속 바뀌어서 신기했다.

이번주 주말에는 로또 번호를 입력하고, 로또 번호를 뽑아서 당첨됐는지 출력하는 코드를 만들어보고 싶다.

728x90
반응형

'HRD_훈련 > JAVA' 카테고리의 다른 글

[JAVA] 생성자와 상속 (7일차)  (0) 2023.05.22
[JAVA] 객체 지향 프로그래밍 (6일차)  (0) 2023.05.19
[JAVA] 반복문 (4일차)  (0) 2023.05.18
[JAVA] 조건문 (4일차)  (0) 2023.05.17
[JAVA] 연산자(Operation) (3일차)  (0) 2023.05.17

+ Recent posts