221026 퀴즈
- 배열 안에서 랜덤하게 값을 출력하기
1. run 했을 때
cherry, apple, banana, melon, 7
5개 문자열중에서 1개가 랜덤하게 출력되게 해보세요.
2. run 했을 때
5개의 문자열 중에서 3개가 한줄에 한번에 랜덤하게 출력되게 해보세요.
예) cherry | apple | cherry, 7 | apple | melon, 7 | 7 | 7
<내가 작성한 코드>
package test.main;
import java.util.Random;
public class Quiz1026 {
public static void main(String[] args) {
/* 1. run했을때
* cherry, apple, banana, melon, 7
* 5개 문자열중에서 1개가 랜덤하게 출력되게 해보세요.
*
* 2. run 했을 때
* 5개의 문자열 중에서 3개가 한줄에 한번에 랜덤하게 출력되게 해보세요.
* 예) cherry|apple|cherry, 7|apple|melon, 7|7|7
*
* - hint
* String[] items={"cherry", "apple", "banana", "melon", "7"}
*
* Random ran=new Random();
* int ranNum=ran.nextInt(5);
*/
String[] items={"cherry", "apple", "banana", "melon", "7"};
Random ran=new Random();
int ranNum=ran.nextInt(5);
System.out.println(items[ranNum]);
Random ran2=new Random();
int r1=ran2.nextInt(5);
int r2=ran2.nextInt(5);
int r3=ran2.nextInt(5);
System.out.print(items[r1]+" | "+items[r2]+" | "+items[r3]);
if(items[r1]==items[r2] && items[r2]==items[r3]) {
System.out.println("축하드립니다! 상금을 받아가세요.");
}
}
}
1번)
package test.main;
import java.util.Random;
public class QuizMain {
public static void main(String[] args) {
String[] items={"cherry", "apple", "banana", "melon", "7"};
//랜덤한 숫자를 얻어내기 위한 객체
Random ran=new Random();
//0~4사이의 랜덤한 숫자를 하나 얻어내서
int ranNum=ran.nextInt(5);
//배열의 인덱스로 활용해서 문자열 출력하기
System.out.println(items[ranNum]);
}
}
2번)
package test.main;
import java.util.Random;
public class QuizMain2 {
public static void main(String[] args) {
String[] items={"cherry", "apple", "banana", "melon", "7"};
//랜덤한 숫자를 얻어내기 위한 객체
Random ran=new Random();
for(int i=0; i<3; i++) {
//0~4사이의 랜덤한 숫자를 하나 얻어내서
int ranNum=ran.nextInt(5);
//배열의 인덱스로 활용해서 문자열 출력하기
System.out.print(items[ranNum]);
if(i<2) {
System.out.print(" | ");
}
}
}
}
- items라는 배열안에서 랜덤 숫자를 3개 얻어내려면 아래 코드가 3번 반복되면 된다.
int ranNum=ran.nextInt(5);
System.out.println(items[ranNum]);
→ 위 코드를 3번 반복되는 for 문 안에 넣기!
- \r\n 또는 \n : 윈도우에서의 개행기호
- " | " 출력을 for 문 안에 넣고, 맨 끝을 빼려면 if문을 사용하면 된다.
3번) 점수 부여하기
package test.main;
import java.util.Random;
public class QuizMain2 {
/*
* 3개가 모두 같게 나왔다면 10점을 부여하기
*/
public static void main(String[] args) {
String[] items={"cherry", "apple", "banana", "melon", "7"};
//랜덤한 숫자를 얻어내기 위한 객체
Random ran=new Random();
//for문 안에서 얻어낸 랜덤한 숫자 3개를 저장할 배열 객체 생성
int[] nums=new int[3];
for(int i=0; i<3; i++) {
//0~4사이의 랜덤한 숫자를 하나 얻어내서
int ranNum=ran.nextInt(5);
//배열의 인덱스로 활용해서 문자열 출력하기
System.out.print(items[ranNum]);
if(i<2) {
System.out.print(" | ");
}
//배열에 일어난 랜덤한 숫자를 저장하기
nums[i]=ranNum;
}
//개행
System.out.println();
//nums 배열에 저장된 3개의 숫자가 모두 같은지 여부를 boolean type으로 얻어내기
boolean isEqual = nums[0]==nums[1] && nums[1]==nums[2];
if(isEqual) {
System.out.println("10점입니다.");
} else {
System.out.println("0점입니다.");
}
}
}
- 점수를 부여하려면 for 문 안에서 일어났던 일을 어딘가에 저장한다.
이 안에서 발생한 랜덤한 숫자를 배열에 저장하는 것!
- for문은 3번 반복되는데, 미리 만들어둔 nums 배열에 i가 바뀔 때마다 하나씩 넣어준다.
→ for문이 다 수행된 이후에도 배열에는 숫자들이 들어가있다.
boolean isEqual = nums[0]==nums[1] && nums[1]==nums[2];
- isEqual에 3개의 값이 같은 경우의 boolean 값을 대입해준다.
4번. 2개만 같아도 점수 부여하기
package test.main;
import java.util.Random;
public class QuizMain04 {
/*
* 3개가 모두 같게 나왔다면 10점
* 2개만 같으면 5점
*/
public static void main(String[] args) {
String[] items={"cherry", "apple", "banana", "melon", "7"};
//랜덤한 숫자를 얻어내기 위한 객체
Random ran=new Random();
//for문 안에서 얻어낸 랜덤한 숫자 3개를 저장할 배열 객체 생성
int[] nums=new int[3];
for(int i=0; i<3; i++) {
//0~4사이의 랜덤한 숫자를 하나 얻어내서
int ranNum=ran.nextInt(5);
//배열의 인덱스로 활용해서 문자열 출력하기
System.out.print(items[ranNum]);
if(i<2) {
System.out.print(" | ");
}
//배열에 일어난 랜덤한 숫자를 저장하기
nums[i]=ranNum;
}
//개행
System.out.println();
//3개의 숫자가 모두 같은지 여부
boolean isAllEqual = nums[0] == nums[1] && nums[1] == nums[2];
//2개가 같은지 여부
boolean isTwoEqual = nums[0] == nums[1] || nums[1] == nums[2] || nums[0] == nums[2];
//점수는 10, 5, 0
if(isAllEqual) {
System.out.println("10점입니다.");
}else if(isTwoEqual) {
System.out.println("5점입니다.");
}else {
System.out.println("0점입니다.");
}
}
}
boolean isAllEqual = nums[0] == nums[1] && nums[1] == nums[2];
boolean isTwoEqual = nums[0] == nums[1] || nums[1] == nums[2] || nums[0] == nums[2];
- isAllEqual, isTwoEqual 이라는 변수에 boolean 값을 넣어준다.
5번) 최초 포인트 지급, 3개의 값이 같으면 포인트 부여 (100점 누적하면 상금?)
package test.main;
import java.util.Scanner;
public class TestMain {
public static void main(String[] args) {
int point=1000;
Scanner scan=new Scanner(System.in);
while(true) {
//만일 point가 0이면
if(point == 0) {
break;//반복문 loop 탈출
}
System.out.println("Enter를 치세요.");
//Enter를 칠 때까지 블로킹되는 메소드 호출
scan.nextLine();
//point를 10 감소시키면서
point -= 10;
//원하는 작업 수행(앞선 예제의 for~boolean~if 문을 이 안에 넣기)
System.out.println("수행중...");
}
System.out.println("main 메소드가 종료됩니다.");
}
}
- 처음에 포인트를 1000 제공한 후 상금을 부여한다.
1회 시행할 때마다 10씩 차감해서 0이 되면 반복문을 종료한다.
- 위 코드는 반복할때마다 포인트를 차감하는 코드! 이 코드에 앞 예제의 for~if 문을 넣어주면 된다.
while( ){ }; : () 안의 값이 true이면 반복한다.
- 반복문 while은 () 안의 값이 false가 될 때까지 무한대로 돌아간다.
- break 는 while문을 탈출한다는 의미이다.
break 위에 커서를 올려놓으면 while문에 음영이 생기는 것을 확인할 수 있다.
→ break는 가장 인접한 반복문을 탈출하는 기능!
- 배열의 활용, 객체 생성, 메소드 호출 / for문, if문, 비교연산자, 논리연산자 /
반복수행, 조건부수행, 논리값 계산, 비교 등 다양한 기능을 사용하는 코드!
'국비교육(22-23)' 카테고리의 다른 글
16일차(2)/java(14) : Extends, 다형성 (0) | 2022.10.27 |
---|---|
[참고] github 저장소 README.md 파일 생성 / Pull (0) | 2022.10.27 |
15일차(3)/java(13) : Array, for문, 확장 for문 (0) | 2022.10.26 |
15일차(2)/java(12) : WrapperClass (0) | 2022.10.26 |
15일차(1)/java(11) : class, variable, git 외 (0) | 2022.10.26 |