Java좀 도와주세요

6) n개의 정수를 사용자로부터 입력 받습니다. 그 정수는 4자리의 숫자로 3000부터 3399까지의1

숫자만 입력할 수 있습니다. 이 외의 숫자를 받으면 다시 입력을 받습니다. 입력된 숫자에 따라

계산한 결과를 다음과 같이 출력하는 프로그램을 작성하시오.

예) 일련번호 사용자 입력 결과

1 3088 88

2 3122 66

3 3210 660

4 3320 330

사용자가 입력한 앞의 두 자리가 30인 경우 결과 = 결과 + 뒤의 두 자리

사용자가 입력한 앞의 두 자리가 31인 경우 결과 = 결과 – 뒤의 두 자리

사용자가 입력한 앞의 두 자리가 32인 경우 결과 = 결과 x 뒤의 두 자리

사용자가 입력한 앞의 두 자리가 33인 경우 결과 = 결과 / 뒤의 두 자리

제가 코드 짜본거에요.(class2개 입니다.)혹시나 이거말구 더 간단한 코드작성방법이 있으면 올려주시면 좋은 참고자료가 될거같아요. 아스키 코드를 사용하지 않는 방법두요.

import java.util.Scanner;

public class Question4_6
{
int 입력숫자;
int 누계;

   public Question4_6()
{
int 입력숫자 = 0;
int 누계 = 0;
}
public void 입력()
{
Scanner 입력값=new Scanner(System.in);

      while(true)
{
System.out.print(“사용자 입력 :”);
입력숫자=입력값.nextInt();

  if( 입력숫자>=3300 && 입력숫자<=3399)
{
누계=누계/(입력숫자-3300);
System.out.println(“결과 : “+누계);
}
else if(입력숫자>=3200 && 입력숫자<3300)
{
누계=누계*(입력숫자-3200);
System.out.println(“결과 : “+누계);
}
else if(입력숫자>=3100 && 입력숫자<3200)
{
누계=누계-(입력숫자-3100);
System.out.println(“결과 : “+누계);
}
else if(입력숫자>=3000 && 입력숫자<3100)
{
누계=누계+(입력숫자-3000);
System.out.println(“결과 : “+누계);}
else
{
System.out.println(“다시 입력하세요.”);
누계 = 누계;
}
}

   }

}

public class QuestionTest4_6
{
public static void main(String[] args)
{
Question4_6 A = new Question4_6();
A.입력();
}
}

 

 

답변:

 
import java.util.Scanner;
 
public class Question {
/*
 * n개의 정수를 사용자로부터 입력 받습니다. 그 정수는 4자리의 숫자로 3000부터 3399까지의1 
    숫자만 입력할 수 있습니다. 이 외의 숫자를 받으면 다시 입력을 받습니다. 입력된 숫자에 따라 
    계산한 결과를 다음과 같이 출력하는 프로그램을 작성하시오. 
    예) 일련번호 사용자 입력 결과 
    1 3088 88 
    2 3122 66 
    3 3210 660 
    4 3320 330 
    사용자가 입력한 앞의 두 자리가 30인 경우 결과 = 결과 + 뒤의 두 자리 
    사용자가 입력한 앞의 두 자리가 31인 경우 결과 = 결과 - 뒤의 두 자리 
    사용자가 입력한 앞의 두 자리가 32인 경우 결과 = 결과 x 뒤의 두 자리 
    사용자가 입력한 앞의 두 자리가 33인 경우 결과 = 결과 / 뒤의 두 자리 
 */
    public static void main(String[] args) {
        int result = 0;
        while(true) {
            Scanner input = new Scanner(System.in);
            System.out.print("사용자 입력: ");
            String tempStr = input.next();
            if(tempStr.length() != 4) {
                System.out.println("입력값 오류!");
                break;
            }
            int temp = Integer.parseInt(tempStr);
            // 입력값이 3300 보다 크고 3399 보다 작으면 입력값을 다시 받습니다..
            if(temp < 3000 
                    || temp > 3399) {
                System.out.println("입력값 오류!");
                continue;
            }
 
            // 
            // 연산을 수행하기 위해 필요한 뒤의 두자리를 자릅니다.
            //
            int value = Integer.parseInt(tempStr.substring(2));
 
            // 
            // Switch-case 문 사용을 위해 앞 두자리르 자릅니다.
            //
            switch (Integer.parseInt(tempStr.substring(0,2))) {
            case 30:
                result = result + value;
                break;
            case 31:
                result = result - value;
                break;
            case 32:
                result = result * value;
                break;
            case 33:
                result = result / value;
                break;
            }
            System.out.println("result : "+ result);
        }
    }
}

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중