我有两个嵌套的开关,我想在另一个开关盒中使用一个开关盒的值。如下例所示,我想使用双变量 temp_usr 并将其作为参数传递给另一个开关案例中的方法(cels()),怎么能我这样做了?
switch( switch1){
case 1:
{
System.out.println(" You have selected Celsius");
Scanner temp_ip= new Scanner(System.in);
System.out.println("Please enter the temperature in celsius");
double temp_usr= temp_ip.nextDouble();
}
break;
case 2: ...............
case 3: ...............
switch(switch2) {
case 1:
{
System.out.println("convert it into Celsius");
System.out.println(cels(arg)); /*this argument should take value of temp_usr*/
}
break;
case 2: .........
case 3: .........
答案 0 :(得分:1)
变量在定义的块内可见。如果要打开可见性,请在交换机外部声明它。试试这个:
double temp_usr= 0.0; //declaring here switch will make it visible in the following code
switch( switch1){
case 1:
{
System.out.println(" You have selected Celsius");
Scanner temp_ip= new Scanner(System.in);
System.out.println("Please enter the temperature in celsius");
temp_usr= temp_ip.nextDouble();
}
break;
case 2: ...............
case 3: ...............
switch(switch2) {
case 1:
{
System.out.println("convert it into Celsius");
System.out.println(cels(arg)); /*this argument should take value of temp_usr*/
}
break;
case 2: .........
case 3: .........
答案 1 :(得分:0)
首先,这些不是嵌套开关。
确保默认情况也会导致可访问的temp_usr
。首先,出于范围原因,我在switch语句之外声明它:
double temp_usr=0;
我会在每个案例块中设置它,并允许default
保留0
。
然后,它将可用,有效且在范围内,而第二个switch语句没有编译器错误。