import java.util.Scanner;

public class homewwork1 {
	public static void main(String[] args) {
		System.out.println("화면에 숫자를 입력해주세요.");
		// 사용자로부터 코드를 입력받는다.
		
		Scanner s = new Scanner(System.in);
		// 입력 받기 위해 스캐너 코드를 작성한 후 스캐너 모듈을 가져온다.
		
		double userInputNumber = s.nextInt();
		// 입력 받은 숫자를 정수값 변수 userInputNumber에 저장한다.
		
		System.out.println("당신이 입력한 숫자는 " + userInputNumber + " 입니다.");
		System.out.println("당신이 입력한 숫자에 +10을 한 값은 " + (userInputNumber + 10) + " 입니다.");
		System.out.println("당신이 입력한 숫자에  -5를 한 값은 " + (userInputNumber - 5) + " 입니다.");
		System.out.println("당신이 입력한 숫자에  *2를 한 값은 " + (userInputNumber * 2) + " 입니다.");
		System.out.println("당신이 입력한 숫자에  /2를 한 값은 " + (userInputNumber / 2) + " 입니다.");
		System.out.println("당신이 입력한 숫자에  %3을 한 값은 " + (userInputNumber % 3) + " 입니다.");
	}

}


실행 예시



화면에 숫자를 입력해주세요.

0

당신이 입력한 숫자는 0.0 입니다.

당신이 입력한 숫자에 +10을 한 값은 10.0 입니다.

당신이 입력한 숫자에  -5를 한 값은 -5.0 입니다.

당신이 입력한 숫자에  *2를 한 값은 0.0 입니다.

당신이 입력한 숫자에  /2를 한 값은 0.0 입니다.

당신이 입력한 숫자에  %3을 한 값은 0.0 입니다.



화면에 숫자를 입력해주세요.

7

당신이 입력한 숫자는 7.0 입니다.

당신이 입력한 숫자에 +10을 한 값은 17.0 입니다.

당신이 입력한 숫자에  -5를 한 값은 2.0 입니다.

당신이 입력한 숫자에  *2를 한 값은 14.0 입니다.

당신이 입력한 숫자에  /2를 한 값은 3.5 입니다.

당신이 입력한 숫자에  %3을 한 값은 1.0 입니다.

 

근데 이 스캐너라는애가 실수 입력을 못 받는 것 같다. 원래 실수까지 입력 받으려고 결과가 소수점 이하가 나오도록 했던건데...

이 부분은 다시 보니 double userInputNumber = s.nextInt( ); 때문이었다.

s.nextInt( ) 스캐너로부터 입력 받은 정수(int)값을 double userInputNumber 실수형(double) 변수 userInputNumber에 담아라.

따라서 7을 입력 받았을 때 저렇게 해주면 7/2 중 앞에 7이 double 포맷이라 나눗셈이 정상적으로 되었지만 실수 자체를 입력 받지 못했던거다.

따라서 다음과 같이 변경하면 정상적으로 작동한다.

double userInputNumber = s.nextDouble( );    // 스캐너 입력 받을 때는 자료형 첫글자를 대문자로 입력해야 작동한다. nextdouble X

따라서 if else문을 사용하기 위해 실수에서도 나머지 연산이 제대로 작동하는지 확인하기 위해 다음을 입력해보면


public class homewwork1 {
	public static void main(String[] args) {
		System.out.println((double)7.4%2);
		System.out.println((double)0.0%2);
		System.out.println((double)0%2);
		System.out.println((double)6%2);
		System.out.println((double)7.5%2);
        
        if((double)6%2==0) {
			System.out.println("True");
		}
	}

}


1.4000000000000004
0.0
0.0
0.0
1.5
True

로 잘 작동함을 알 수 있다.

public class homewwork1 {
   public static void main(String[] args) {
      if((userInputNumber-(int)userInputNumber)%2==0) {
      userInputNumber = (int)userInputNumber;
      System.out.println("당신이 입력한 숫자는 " + userInputNumber + " 입니다.");
      System.out.println("당신이 입력한 숫자에 +10을 한 값은 " + (int)(userInputNumber + 10) + " 입니다.");
      System.out.println("당신이 입력한 숫자에  -5를 한 값은 " + (int)(userInputNumber - 5) + " 입니다.");
      System.out.println("당신이 입력한 숫자에  *2를 한 값은 " + (int)(userInputNumber * 2) + " 입니다.");
      System.out.println("당신이 입력한 숫자에  /2를 한 값은 " + (int)(userInputNumber / 2) + " 입니다.");
      System.out.println("당신이 입력한 숫자에  %3을 한 값은 " + (int)(userInputNumber % 3) + " 입니다.");
   }
        

로 int로 형변환 해서 넣고 계산 하면 되겠지... 하고 넣어봤지만
        
화면에 숫자를 입력해주세요.
6
당신이 입력한 숫자는 6.0 입니다.
당신이 입력한 숫자에 +10을 한 값은 16.0 입니다.
당신이 입력한 숫자에  -5를 한 값은 1.0 입니다.
당신이 입력한 숫자에  *2를 한 값은 12.0 입니다.
당신이 입력한 숫자에  /2를 한 값은 3.0 입니다.
당신이 입력한 숫자에  %3을 한 값은 0.0 입니다.

가 된다.. if((userInputNumber-(int)userInputNumber)%2==0.0)으로 해봐도 마찬가지

그래서 그냥 double로 받아서 계산한 다음 int로 결과만 형변환하기로 했다.

최종적으로 완성된 코드는 다음과 같다.

< 아래 코드가 줄이 한 줄로 나오지 않아 스샷을 추가한다 >

import java.util.Scanner;

public class homewwork1 {
	public static void main(String[] args) {
		System.out.println("화면에 숫자를 입력해주세요.");
		// 사용자로부터 코드를 입력받는다.
		
		Scanner s = new Scanner(System.in);
		// 입력 받기 위해 스캐너 코드를 작성한 후 스캐너 모듈을 가져온다.
		
		double userInputNumber = s.nextDouble();

        // 입력값 - (int) % 2 == 0 입력값을 통해 정수인지 실수인지 판단한다.
		if((userInputNumber - (int)userInputNumber) % 2 == 0) {    // 정수면 실행
			System.out.println("당신이 입력한 숫자는 " + (int)userInputNumber + " 입니다.");
			System.out.println("당신이 입력한 숫자에 +10을 한 값은 " + (int)(userInputNumber + 10) + " 입니다.");
			System.out.println("당신이 입력한 숫자에  -5를 한 값은 " + (int)(userInputNumber - 5) + " 입니다.");
			System.out.println("당신이 입력한 숫자에  *2를 한 값은 " + (int)(userInputNumber * 2) + " 입니다.");
			if(userInputNumber % 2 == 0) {    // 짝수면 실행
				System.out.println("당신이 입력한 숫자에  /2를 한 값은 " + (int)(userInputNumber / 2) + " 입니다.");
			} else {    // 홀수면 실행
				System.out.println("당신이 입력한 숫자에  /2를 한 값은 " + (userInputNumber / 2) + " 입니다.");
			}
			System.out.println("당신이 입력한 숫자에  %3을 한 값은 " + (int)(userInputNumber % 3) + " 입니다.");
		} else {    // 실수면 실행
			System.out.println("당신이 입력한 숫자는 " + userInputNumber + " 입니다.");
			System.out.println("당신이 입력한 숫자에 +10을 한 값은 " + (userInputNumber + 10) + " 입니다.");
			System.out.println("당신이 입력한 숫자에  -5를 한 값은 " + (userInputNumber - 5) + " 입니다.");
			System.out.println("당신이 입력한 숫자에  *2를 한 값은 " + (userInputNumber * 2) + " 입니다.");
			System.out.println("당신이 입력한 숫자에  /2를 한 값은 " + (userInputNumber / 2) + " 입니다.");
			System.out.println("당신이 입력한 숫자에  %3을 한 값은 " + (userInputNumber % 3) + " 입니다.");		
		}

	}

}


if문 작동

화면에 숫자를 입력해주세요.
0
당신이 입력한 숫자는 0 입니다.
당신이 입력한 숫자에 +10을 한 값은 10 입니다.
당신이 입력한 숫자에  -5를 한 값은 -5 입니다.
당신이 입력한 숫자에  *2를 한 값은 0 입니다.
당신이 입력한 숫자에  /2를 한 값은 0 입니다.
당신이 입력한 숫자에  %3을 한 값은 0 입니다.

화면에 숫자를 입력해주세요.
6
당신이 입력한 숫자는 6 입니다.
당신이 입력한 숫자에 +10을 한 값은 16 입니다.
당신이 입력한 숫자에  -5를 한 값은 1 입니다.
당신이 입력한 숫자에  *2를 한 값은 12 입니다.
당신이 입력한 숫자에  /2를 한 값은 3 입니다.
당신이 입력한 숫자에  %3을 한 값은 0 입니다.

화면에 숫자를 입력해주세요.
7
당신이 입력한 숫자는 7 입니다.
당신이 입력한 숫자에 +10을 한 값은 17 입니다.
당신이 입력한 숫자에  -5를 한 값은 2 입니다.
당신이 입력한 숫자에  *2를 한 값은 14 입니다.
당신이 입력한 숫자에  /2를 한 값은 3.5 입니다.
당신이 입력한 숫자에  %3을 한 값은 1 입니다.

화면에 숫자를 입력해주세요.
6.0
당신이 입력한 숫자는 6 입니다.
당신이 입력한 숫자에 +10을 한 값은 16 입니다.
당신이 입력한 숫자에  -5를 한 값은 1 입니다.
당신이 입력한 숫자에  *2를 한 값은 12 입니다.
당신이 입력한 숫자에  /2를 한 값은 3 입니다.
당신이 입력한 숫자에  %3을 한 값은 0 입니다.

화면에 숫자를 입력해주세요.
7.0
당신이 입력한 숫자는 7 입니다.
당신이 입력한 숫자에 +10을 한 값은 17 입니다.
당신이 입력한 숫자에  -5를 한 값은 2 입니다.
당신이 입력한 숫자에  *2를 한 값은 14 입니다.
당신이 입력한 숫자에  /2를 한 값은 3.5 입니다.
당신이 입력한 숫자에  %3을 한 값은 1 입니다.


else문 작동

화면에 숫자를 입력해주세요.
7.4
당신이 입력한 숫자는 7.4 입니다.
당신이 입력한 숫자에 +10을 한 값은 17.4 입니다.
당신이 입력한 숫자에  -5를 한 값은 2.4000000000000004 입니다.
당신이 입력한 숫자에  *2를 한 값은 14.8 입니다.
당신이 입력한 숫자에  /2를 한 값은 3.7 입니다.
당신이 입력한 숫자에  %3을 한 값은 1.4000000000000004 입니다.

로 깔끔하게 출력이 가능하다.

+ Recent posts