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); } } }