2017년 10월 10일 화요일

do while 문


package testcase; import java.util.Calendar; import java.util.Scanner; public class Case { public static void main(String[] args) { //모드 설정 변수 int autoMode = 0; // (0 : 자동, 1 : 수동) int emerMode = 0; // (0 : 정상, 1 : 비상) int n; int hour = 6; int min = 00; // 데이터 변수 float windSpeed = 0.0f; // 풍속 float maxWindSpeed = 0.0f; // 최대풍속 float altitude = 5.0f; // 고도각(6시 5도) float direction = 90.0f; //방향각 (6시 동향 (90도) boolean loop_flag = true; Calendar cal = Calendar.getInstance(); Scanner sc = new Scanner(System.in); do { System.out.println("1) 풍속입력"); System.out.println("2) 모드설정"); System.out.println("3) 비상모드"); System.out.println("4) 비상해제"); System.out.println("5) 시간설정"); System.out.println("6) 종료"); System.out.print("입력 : "); n = sc.nextInt(); switch(n) { case 1 : { System.out.print("풍속을 입력하십시요 : "); windSpeed = sc.nextFloat(); //최대 풍속 if(maxWindSpeed < windSpeed) { maxWindSpeed = windSpeed; //자동 모드이고 풍속이 15m/s 이상이면 비상모드로 전환 if(autoMode == 0 && windSpeed > 15) { emerMode = 1; } } else { emerMode = 0; } break; } case 2 : { System.out.println("모드입력( 0: 자동모드, 1:수동모드 )"); System.out.print("입력 : "); autoMode = sc.nextInt(); if ( autoMode == 1) { System.out.print("고도각 : "); altitude = sc.nextFloat(); System.out.print("방향각 : "); direction = sc.nextFloat(); } else { } break; } case 3 : { System.out.println("비상모드설정"); autoMode = 1; //수동모드 emerMode = 1; //비상모드 altitude = 15.0f; //고도각 15도 break; } case 4 :{ System.out.println("비상모드해제"); autoMode = 0; emerMode = 0; break; } case 5 : { System.out.println("시간 설정"); System.out.print("시 : "); hour = sc.nextInt(); System.out.println("분 : "); min = sc.nextInt(); break; } case 6 : { loop_flag = false; break; } default : System.out.println("잘못입력 하셨습니다."); } //자동 모드인경우 방위각 고도각을 계산 if(autoMode == 0) { int tempTime = hour * 60 + min; if(tempTime >= 6*60 && tempTime < 18*60) { direction = (270 - 90.0f)/((18*60)-(6*60))*(tempTime-(6*60))+90; if(tempTime <= 12*60) { altitude = (80 - 5.0f)/((12*60)-(6*60))*(tempTime-(6*60))+5; } else if (tempTime > 12*60 && tempTime <= 18*60){ altitude = (5 - 80.0f)/((18*60)-(12*60))*(tempTime-(12*60))+80; } } else { altitude = 5.0f; direction = 90.0f; } } else if (emerMode == 1){ altitude = 15.0f; //비상모드일경우 15도 } System.out.printf("현제시간: %02d:%02d\n", hour, min); System.out.printf("모드 : " + ((autoMode == 0) ? "자동 &" : "수동 &") + " " + ((emerMode == 1) ? "비상\n" : "정상\n")); System.out.printf("풍속 : %.1f\n", windSpeed); System.out.printf("최대풍속 : %.1f\n", maxWindSpeed); System.out.printf("고도각 : %.1f\n", altitude); System.out.printf("방향각 : %.1f\n", direction); } while (loop_flag == true); sc.close(); } }

Share:

0 개의 댓글:

댓글 쓰기

Scroll To Top