2015-02-01 3 views
1

에 인수를 전달 내가 여기서 뭘 잘못했는지 모르겠어요, 이자바 코드는 방법

package methods; 

public class example { 
    public static int sum(int x, int y){ 
     return x+y; 
    } 
    public static void printSomething() { 
     int a = 1; 
     int b = 2; 
     System.out.println("The sum of "+ x + " and "+ y +" is "+sum(a,b)); 
    } 
    public static void main(String[] args) { 
     System.out.println("Hello"); 
     printSomething(); 
    } 
} 

내가 x의 합계를 인쇄 할 내 코드이고 y는 3

+0

코드가 실제로 무엇을 하는가? 해당 메소드의 범위에 속하지 않는'printSomething()'메소드 안에'x'와'y' 변수를 사용하고있는 것으로 보입니다. 그러면 코드가 컴파일되지 않게됩니다 - 이것이 잘못된 것입니까? ? 해결책 : 거기에'a'와'b'를 사용하십시오. 'System.out.println ("+ a +"와 "+ b +"의 합은 "+ sum (a, b))" –

+0

'System.out.println ("x와 y의 합은 "+ sum (a, b)); ' – kares

+0

그래, 솔루션을 가져 주셔서 감사합니다. 그냥 호기심에서, 나는 멍청하고이 사이트에 새로운 이유는 내가이 질문에 -1을 얻었 을까? –

답변

2

시도이다 이 :

System.out.println("The sum of "+ a + " and "+ b +" is "+sum(a,b)); 

매개 변수 이름 및 xy는 curre에있어서 정의에 로컬있다 범위는 ab입니다.

또는 일관성을 위하여 간단히 printSomething() 방법에 xyab의 이름을 바꿀 수 있습니다. 결과는 정확히 같지만 변수가 같은 이름이됩니다.

+1

솔루션을 보내 주셔서 감사합니다 :) –

0
package methods; 

public class example { 
    public static int sum(int x, int y){ 
     return x+y; 
    } 
    public static void printSomething() { 
     int a = 1; 
     int b = 2; 
     System.out.println("The sum of " + a + " and " + b + " is " + sum(a,b)); 
    } 
    public static void main(String[] args) { 
     System.out.println("Hello"); 
     printSomething(); 
    } 
} 

다른 방법으로 로컬 변수 (x, y 등)에 액세스 할 수 없습니다.

+0

솔루션을 주셔서 감사합니다 :) –

0

당신이 달성하고자하는 일에 대해 잘 모르겠지만,이 도움이되었는지 확인 :

package methods; 

public class example { 
    public static int sum(int x, int y){ 
     return x+y; 
    } 
    public static void printSomething() { 
     int a = 1; 
     int b = 2; 
     System.out.println("The sum of "+ a + " and "+ b +" is "+sum(a,b)); 
    } 
    public static void main(String[] args) { 
     System.out.println("Hello"); 
     printSomething(); 
    } 
} 
+0

솔루션을 가져 주셔서 감사합니다 :) –