JAVA 프로그래밍

문제

동전을 던지면 어느 면이 위쪽을 향하도록 떨어졌는지를 사용자가 맞추는 동전 던지기 게임을 여러 번 계속할지 묻는 문제입니다 이를 해결하는 다음 프로그램을 해석하세요 
동전의 앞면(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

알고리즘

프로그램 시작 
   동전 던지기 게임
      먼저 동전을 임의로 던져서 받고 숨기기
      사용자는 동전의 앞면과 뒷면 중 하나를 선택
      사용자가 동전의 상태를 맞추었는지 결과 출력
   사용자에게 게임을 한번 더 할지 묻기
프로그램 종료

프로그램 코드

	// 파일명 : ./Chapter07/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): " );
				again = scan.nextLine().charAt(0);
6			} while( ( again == 'y' ) || ( again == 'Y' ) );
			scan.close();
		// 프로그램 종료 
7		}
	}

실행 순서

 
 					※ 실행순서 및 메모리상태는 A키(이전) 및 D키(다음)를 눌러도 확인할 수 있습니다