이 간단한 계산기 프로그램에서 switch/case 문을 점프 테이블로 만들려면 어떻게해야합니까? Java에서 점프 테이블 구현
import java.lang.*;
import java.util.*;
public class Calculator
{
private int solution;
private static int x, y, ops;
private char operators;
public Calculator()
{
solution = 0;
}
public int addition(int x, int y)
{
return x + y;
}
public int subtraction(int x, int y)
{
return x - y;
}
public int multiplication(int x, int y)
{
return x * y;
}
public int division(int x, int y)
{
solution = x/y;
return solution;
}
public void calc(int ops){
Scanner operands = new Scanner(System.in);
System.out.println("operand 1: ");
x = operands.nextInt();
System.out.println("operand 2: ");
y = operands.nextInt();
System.out.println("Solution: ");
switch(ops)
{
case(1):
System.out.println(addition(x, y));
break;
case(2):
System.out.println(subtraction(x, y));
break;
case(3):
System.out.println(multiplication(x, y));
break;
case(4):
System.out.println(division(x, y));
break;
}
}
public static void main (String[] args)
{
System.out.println("What operation? ('+', '-', '*', '/')");
System.out.println(" Enter 1 for Addition");
System.out.println(" Enter 2 for Subtraction");
System.out.println(" Enter 3 for Multiplication");
System.out.println(" Enter 4 for Division");
Scanner operation = new Scanner(System.in);
ops = operation.nextInt();
Calculator calc = new Calculator();
calc.calc(ops);
}
}
내가 점프 테이블은 (온라인 어떤 설명을 찾을 수 없습니다) 그래서 나는 그것이 스위치/case 문에서 다른 방법을 모르는 정확히 모르는, 완전히 정직합니다.
사이드 노트 :이 코드는 정수만을 처리하므로 5/3을 나눈다면 1이됩니다. 어떻게 float/double을 취하도록 쉽게 변경할 수 있습니까?
점프 테이블 : http://stackoverflow.com/questions/48017/what-is-a-jump-table. 함수에 대한 포인터가 전부입니다. 자바에서 할 일이 아닙니다. 나는 물어야한다, 왜 이것을하고 싶니? – tom
교수님이 자바에서 포인터를 사용하려고했는데 포인터로 작업하기위한 좋은 연습으로 switch/case 문을 사용하여 점프 테이블로 전환하는 연습을 해보도록 권했습니다. 문제는 그가 무엇인지 설명하지 못했고 무엇을해야할지 모른다. –
"자바의 포인터"란 무엇입니까? 당신은 참조로 전달할 수 있습니다. 비슷한 개념이지만 포인터가 아닙니다. Java에는 포인터가 없습니다. 교수님은 혼란스러워합니다. – tom