본문 바로가기
코딩수업/AWS 클라우드환경 네이티브

7/20 자바(Java) Math.random() 활용, 반복문(for, while, do...while)

by 인생즐겜러 2022. 7. 20.
728x90
반응형

AWS 클라우드환경 네이티브 수업 47일차

 

 

 

진행

1. Math.random() 활용

2. 개발자 편의 프로그램 알려주심 (아래 페이지 맨 마지막)

https://0rcticfox.tistory.com/entry/718-%EA%B0%95%EC%82%AC%EB%8B%98-%EA%B5%90%EC%B2%B4-%ED%9B%84-%EC%B2%AB-%EC%88%98%EC%97%85-%EC%9E%90%EB%B0%94

3. switch 문 추가 예제 (아래 페이지 맨 마지막)

https://0rcticfox.tistory.com/entry/719-Java-%EB%AC%B8%EC%9E%90-%EC%97%B0%EC%82%B0-%EC%97%B0%EC%82%B0%EC%9E%90-%EC%A1%B0%EA%B1%B4%EB%AC%B8

4. 반복문

 

 

 

 

 

요약

1. Math.random() 문자로의 활용

2. 반복문 (for / while / do ... while)

 

 

 

 

 


 

 

 

 

 

Math.random() 활용

 

난수를 만드는 함수는 다각도로 활용이 가능하다.

난수를 만드는 것뿐만 아니라

아래의 아스키코드(ASCII)를 이용하여 문자를 랜덤하게 추출도 가능하다.

 

예를 들어 A~D를 랜덤하게 뽑는 구문을 만든다고 해보자.

아래의 표를 보면 10진수로 A~D는 65~68의 값이 필요하다.

해당 값을 문자 자료형으로 변환하면 A~D가 나온다는 말이다.

 

 

 

 

 

 

이제 구문을 만든 예시를 보자.

 

package LectureExam;

public class RandomExample {

	public static void main(String[] args) {

		float random1 = (float)(Math.random()*4 + 'A');
		// ASCIIcode 로 1씩 더해지면 알파벳이 바뀌니까 65~68까지가 필요
		char random2 = (char)(random1);
		// 해당 값을 문자형으로 변환하면 A~D가 나옴
		
		System.out.println(random1);
		System.out.println(random2);
		System.out.println((char)(69) );
		// 숫자를 문자형으로 변환하면 문자가 나온다
				
	}

}



결과
68.6826
D
E

 

 

 

 

 


 

 

 

 

 

반복문

 

 

 

for 문

 

구조는 아래와 같다.

조건식이 만족 되는 한 안의 구문이 반복된다. 

만약 조건식이 없다면 무한 반복으로 실행 된다.

 

for( 초기값 ; 조건식 ; 증감식){
	실행 내용
}

 

아래는 for 반복문으로 구구단을 만든 예시이다.

 

package LectureExam;

public class RepeatExample {

	public static void main(String[] args) {

		int i, j = 0;
		
		for( j = 2; j < 10 ; j++) {
				for( i = 1 ; i<10 ; i++) {
					System.out.print(j + "x" + i + " = " + i*j + " \t");
                    // " \t" 를 사용함으로써 모든 간격을 일정하게 만든다.
				}	
			System.out.println();			
		}			
	}		
}






결과
2x1 = 2 	2x2 = 4 	2x3 = 6 	2x4 = 8 	... 	2x8 = 16 	2x9 = 18 	
3x1 = 3 	3x2 = 6 	3x3 = 9 	3x4 = 12 	... 	3x8 = 24 	3x9 = 27 	
4x1 = 4 	4x2 = 8 	4x3 = 12 	4x4 = 16 	... 	4x8 = 32 	4x9 = 36 	
5x1 = 5 	5x2 = 10 	5x3 = 15 	5x4 = 20 	... 	5x8 = 40 	5x9 = 45 	
6x1 = 6 	6x2 = 12 	6x3 = 18 	6x4 = 24 	... 	6x8 = 48 	6x9 = 54 	
7x1 = 7 	7x2 = 14 	7x3 = 21 	7x4 = 28 	... 	7x8 = 56 	7x9 = 63 	
8x1 = 8 	8x2 = 16 	8x3 = 24 	8x4 = 32 	... 	8x8 = 64 	8x9 = 72 	
9x1 = 9 	9x2 = 18 	9x3 = 27 	9x4 = 36 	... 	9x8 = 72 	9x9 = 81

 

 

 

 

 

※ 참고 - System.out.print

 

System.out.println() ; // 출력 후 줄 바꿈
System.out.print("a") ; // 출력 후 줄 바꿈 없음
System.out.print("\t") ; // Tab
System.out.print(" \t") ; // 스페이스 후 Tab을 하면 전부 일정한 탭 간격이 된다.

 

 

 

 

 


 

 

 

 

 

while 문 / do ... while 문

 

구조는 다음과 같다.

while 은 조건식 만족이 안된다면 한번도 실행이 안될 수 있지만

do ... while은 무조건 한번은 실행이 된다.

 

1.
while(조건식){

	조건식이 true일 때 실행되는 문장
    
}



2.
do{	 // 처음 한 번은 아래 코드가 실행됨

	실행 될 문장
    
} while(조건);	// 이후 해당 조건을 만족하면 반복

 

 

 

 

 

다음은 for문과 마찬가지로 while 문으로 만든 구구단이다.

 

package LectureExam;

public class RepeatExample {

	public static void main(String[] args) {

		int i = 2;
		int j = 1;

		while(i<10) {
			while(j<10) {				
				System.out.print(i + "x" + j + " = " + i*j + " \t");
				j++ ;
			}

			System.out.println();
			i++;
			j=1;	// for문과는 다르게 초기화 시켜주는 거 잊지 말 것.
		}		
	}
}



결과
2x1 = 2 	2x2 = 4 	2x3 = 6 	... 	2x8 = 16 	2x9 = 18 	
3x1 = 3 	3x2 = 6 	3x3 = 9 	... 	3x8 = 24 	3x9 = 27 	
4x1 = 4 	4x2 = 8 	4x3 = 12 	... 	4x8 = 32 	4x9 = 36 	
5x1 = 5 	5x2 = 10 	5x3 = 15 	... 	5x8 = 40 	5x9 = 45 	
6x1 = 6 	6x2 = 12 	6x3 = 18 	... 	6x8 = 48 	6x9 = 54 	
7x1 = 7 	7x2 = 14 	7x3 = 21 	... 	7x8 = 56 	7x9 = 63 	
8x1 = 8 	8x2 = 16 	8x3 = 24 	... 	8x8 = 64 	8x9 = 72 	
9x1 = 9 	9x2 = 18 	9x3 = 27 	... 	9x8 = 72 	9x9 = 81

 

 

 

 

 

아래는 do ... while의 예시이다.

while 문과의 차이를 위해 구구단을 2단만 나오도록 설계했다.

아래처럼 한번은 반드시 실행되고, 조건식이 안맞으니 바로 반복이 멈춘다.

 

package LectureExam;

public class RepeatExample {

	public static void main(String[] args) {

		int i = 2;
		int j = 1;

		do {
			do {				
				System.out.println(i + "x" + j + " = " + i*j );
               			 // 한 줄만 보일거니까 보이는 방식을 바꿈
				j++ ;
			} while(j<10);

			System.out.println();
			i++;
			j=1;	
		} while(i<2);		// i가 조건식에 바로 부합하지 않게 했다.
	}
}



결과
2x1 = 2
2x2 = 4
2x3 = 6
2x4 = 8
2x5 = 10
2x6 = 12
2x7 = 14
2x8 = 16
2x9 = 18

 

 

 

 

 

 

 

 

728x90
반응형

댓글