문제
동전을 던지면 어느 면이 위쪽을 향하도록 떨어졌는지를 맞히는 동전 던지기 게임을 사용자가 계속할지 묻는 문제입니다 이를 해결하는 프로그램을 작성하세요
동전의 앞면(1)과 뒷면(2) 중 하나를 선택하세요: 1
맞았습니다.
동전 던지기 게임을 한 번 더 하시겠습니까? (y/n): y
동전의 앞면(1)과 뒷면(2) 중 하나를 선택하세요: 1
틀렸습니다.
동전 던지기 게임을 한 번 더 하시겠습니까? (y/n): n
동전의 앞면(1)과 뒷면(2) 중 하나를 선택하세요: 1
맞았습니다.
동전 던지기 게임을 한 번 더 하시겠습니까? (y/n): n
동전의 앞면(1)과 뒷면(2) 중 하나를 선택하세요: 2
틀렸습니다.
동전 던지기 게임을 한 번 더 하시겠습니까? (y/n): y
동전의 앞면(1)과 뒷면(2) 중 하나를 선택하세요: 1
맞았습니다.
동전 던지기 게임을 한 번 더 하시겠습니까? (y/n): y
동전의 앞면(1)과 뒷면(2) 중 하나를 선택하세요: 2
맞았습니다.
동전 던지기 게임을 한 번 더 하시겠습니까? (y/n): n
알고리즘 설계
프로그램 시작
동전 던지기 게임
먼저 동전을 임의로 던져서 받고 숨기기
사용자는 동전의 앞면과 뒷면 중 하나를 선택
사용자가 동전의 상태를 맞혔는지 결과 출력
사용자가 원하면 게임을 계속 진행
프로그램 종료
// 파일명 : ./Chapter08/FlipCoinLoop.java
import java.util.Scanner;
public class FlipCoinLoop
{
// 프로그램 시작
1 public static void main( String[] args ) {
Scanner scan = new Scanner( System.in );
char again = '\0';
2 do {
// 동전 던지기 게임
// 먼저 동전을 임의로 던져서 받고 숨기기
3 int coin = (int)( Math.random() * 2 ) + 1;
// 사용자는 동전의 앞면과 뒷면 중 하나를 선택
System.out.print( "동전의 앞면(1)과 뒷면(2) 중 하나를 선택하세요: " );
4 int user = Integer.parseInt( scan.nextLine() );
// 사용자가 동전의 상태를 맞혔는지 결과 출력
5 System.out.println( ( coin == user ) ? "맞았습니다." : "틀렸습니다." );
// 사용자가 원하면 게임을 계속 진행
System.out.print( "동전 던지기 게임을 한 번 더 하시겠습니까 ? (y/n): " );
6 again = scan.nextLine().charAt(0);
7 } while( ( again == 'y' ) || ( again == 'Y' ) );
scan.close();
// 프로그램 종료
8 }
}
실행 순서 확인