본문 바로가기

Java/java 기초

while, for문을 활용한 간단한 사칙 연산계산기

public class calc {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);

		System.out.println("계산식을 입력하세요");
		String num1, num2;
		String oper = "";
		int result;

		// 문자 포함되었는지 조사
		boolean stop = true;

		while (true) {
			stop = true;
			System.out.print("첫번쨰 수 = ");
			num1 = scanner.next(); // 2a4

			// 문자 포함되어있는지 조사
			for (int i = 0; i < num1.length(); i++) {
				char c = num1.charAt(i);
				int asccode = (int) c;
				if (asccode < 48 || asccode > 57) {
					stop = false;
					break;
				}
			}

			if (stop == false) {
				System.out.println("숫자가 아닙니다 다시 입력해주세요");
				continue; //continue시 break문이 생략되어 다시 초기로 돌아간다.
			}
			break;
		}
		
		while(true) {
			System.out.print("연산자(+, -, *, /) = ");
			oper = scanner.next();
			if(oper.equals("+") || oper.equals("-") || oper.equals("*") || oper.equals("/")) {
				break;
			} else {
				System.out.println("연산자를 잘못 입력하셨습니다. 다시 입력하세요.");
			}  
		}
				
		while(true) {
			System.out.println("두번쨰 수 =");
			num2 = scanner.next();
			
			for(int i = 0; i < num2.length(); i ++) {
				char c = num2.charAt(i);
				int ascCode = (int) c;
				if( ascCode < 48 || ascCode > 57) {
					stop = false;
					break;
				}
			}
			if(stop == false) {
				System.out.println("숫자가아닙니다 다시 입력해주세요");
				continue;
			}
			break;
		}
		
		//문자 - >숫자로 변환
		
		int parseNum1 = Integer.parseInt(num1);
		int parseNum2 = Integer.parseInt(num2);
		
		if(oper.equals("+")) {
			result = parseNum1 + parseNum2;
			System.out.println(parseNum1 + " + " + parseNum2 + " = " + result);
		} else if (oper.equals("-")) {
			result = parseNum1 - parseNum2;
			System.out.println(parseNum1 + " - " + parseNum2 + " = " + result);
		} else if (oper.equals("*")) {
			result = parseNum1 * parseNum2;
			System.out.println(parseNum1 + " * " + parseNum2 + " = " + result);
		} else if (oper.equals("/")) {
			result = parseNum1 / parseNum2;
			System.out.println(parseNum1 + " / " + parseNum2 + " = " + result);
		} else {
			System.out.println("잘못된 입력입니다.");
		}
		
		
	}
}