2013-08-24 1 views
-4

두 개의 중첩 된 스위치가 있고 다른 스위치의 경우 하나의 스위치 케이스의 값을 사용하고 싶습니다. 아래 예제처럼 double 변수 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

이걸 시도하면 어떻게됩니까? 쉽게 읽을 수 있도록 서식을 수정하는 것이 좋습니다. –

+0

'switch1'이 2이지만'switch2'가 1이라면 어떻게 될까요? –

+0

질문을받지 못했습니다. 설명 해주십시오. – freetiger

답변

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

비록 코드의 골격이라 할지라도 사용자의 숙제를하지 마십시오 ... – hexafraction

+0

그것은 잘 작동합니다 .. 그걸 잘 잡았습니다 .. 나는 그것을 염두에두고 있습니다 ... 감사합니다! – freetiger

0

우선 중첩 스위치는 아닙니다.

기본 대소 문자도 사용 가능한지 확인하십시오 (temp_usr). 0을 유지하기 위해 default

double temp_usr=0; 

나는 각각의 경우 블록을 설정합니다, 허용 : 우선, 나는 범위 이유로 switch 문 외부에 선언 것입니다.

그런 다음 두 번째 switch 문에 대한 컴파일러 오류없이 유효하고 유효하며 범위에 있습니다.

+0

답장을 보내 주셔서 감사합니다 ... 여기 코드 조각을 작성했습니다 .. 나는 그것을 당신의 방식대로 시도하고 있습니다. – freetiger

관련 문제