ネストされた switch ステートメントを使用しようとしています。ネストされた switch ステートメントで異なる式の型を使用することは可能ですか?
次のコンパイラ エラーが発生します arith cannot be resolved as variable
。
エラーが発生した場所を示すコメントがあります。
参照用の私のコードは次のとおりです。
import java.util.Arrays;
import java.util.Scanner;
class Choice1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
@SuppressWarnings("resource")
Scanner S = new Scanner(System.in);
int Source = 0, Target = 0,codePos = 0;
System.out.println("Enter the Source(1-2) :");
Source = S.nextInt();
System.out.println("Enter the Target Value (1 - 3) :");
Target = S.nextInt();
if (Source == 1)
{
String[] arith = {"Add","Sub"};
codePos = Arrays.binarySearch(arith, 0, arith.length, Target);
}
else if (Source == 2)
{
String[] Multi = {"Multiplication","Division","Modulas"};
codePos = Arrays.binarySearch(Multi, 0, Multi.length, Target);
}
else
{
System.out.println("Invalid Value");
}
switch (Source) {
case 1:
switch (arith[codePos]) { // <============= !! ERROR HERE !!
case "Add":
System.out.println("Addition....!!!");
int a,b,c;
System.out.println("Enter value for A :");
a = S.nextInt();
System.out.println("Enter value for B :");
b = S.nextInt();
c = a + b;
System.out.println("The Result " + c);
break;
case "Sub":
System.out.println("Subtraction....!!!");
int d,e,f;
System.out.println("Enter value for D :");
d = S.nextInt();
System.out.println("Enter value for E :");
e = S.nextInt();
f = d - e;
System.out.println("The Result" + f);
break;
default:
System.out.println("Invalid Value...!!!");
}
break;
case 2:
switch (Target) {
case 1:
System.out.println("multiplication....!!!");
int a,b,c;
System.out.println("Enter value for A :");
a = S.nextInt();
System.out.println("Enter value for B :");
b = S.nextInt();
c = a * b;
System.out.println("The Result" + c);
break;
case 2:
System.out.println("Division....!!!");
int d,e,f;
System.out.println("Enter value for D :");
d = S.nextInt();
System.out.println("Enter value for E :");
e = S.nextInt();
f = d / e;
System.out.println("The Result" + f);
break;
case 3:
System.out.println("Modulas....!!!");
int g,h,i;
System.out.println("Enter value for G :");
g = S.nextInt();
System.out.println("Enter value for H :");
h = S.nextInt();
i = g % h;
System.out.println("The Result" + i);
break;
default:
System.out.println("Invalid Value...!!!");
}
break;
}
}
}
}
}