2012-10-12 127 views
0

我想了解传递参数,并且遇到问题。传递参数

比方说,我有以下代码:

我传递值60的方法的someMethod。从那里我想要用用户输入来修改这个值。一旦它被修改,我希望它将该值传递给另一个称为getValue的方法。 getValue方法然后返回该值。

这里的问题:

1)如果我打电话的someMethod,它也将要求用户再次输入,我不想要的。

2)什么是印刷出来的getValue方法的值作为这样做的正确的方法:

New.getValue(INT returnedValue);调用错误“意外型,所需的值,发现了类”

public class New { 

    Scanner sc = new Scanner(System.in) 

private int static num1 = 60; 
someMethod(num1); 

    public static int someMethod(int myValue) 
    { 
     //modify the integer 
     System.out.println("Enter in the value to modify"); 
     myValue = sc.nextInt(); 
     //output the value to a getter method 
     getValue(myValue); 
     return myValue; 
    } 

    public static int getValue(int returnedValue) 
    { 
     return returnedValue; 
    } 

} 

与往常一样,如果你需要澄清,请教!谢谢。

+1

您可以使用此声明 - '的getValue(myvalue的);' - 但它返回一个你不分配给任何东西的值,所以这个值被“抛到地板上”。 –

+0

请看看这个答案以获得更多的解释:http://stackoverflow.com/a/9404727/597657 –

回答

5

someMethod(num1);应该包裹在您的main方法或其他方法中。

第二:您没有sc变量定义。所以,你的代码也会在那里失败。

第三:您没有定义类型num1。它应该是private static int num1 - 60;

您需要传递实际值而不是定义,同时调用getValue()方法。

例子:System.out.println(getValue(50));

+0

当我在someMethod方法内部包装someMethod的传递参数时,仍然出现同样的错误。当我从另一个静态方法调用它时,我说System.out.println(getValue(int returnedValue));我得到预期的价值,有类错误。 – Brian

+0

你应该调用像System.out.println(getValue(50))的东西你需要在这里传递真正的价值,而不是定义 – kosa

+0

如果我传递一个实际值,将如何显示用户输入的内容? – Brian

0

尝试了这一点...

我还添加了修改部分....

public class New { 

private static int num1; 


    public static int someMethod() 
    { 

     System.out.println("Enter in the value to modify"); 

     Scanner s = new Scanner(System.in); 

     int temp = s.nextInt(); 

     return getValue(num1+temp); // Modification Done 
    } 

    public static int getValue(int returnedValue) 
    { 
     return returnedValue; 
    } 

    public static void main(String[] args){ 

     Scanner scan = new Scanner(System.in); 

     New.num1 = scan.nextInt(); 
     int i = someMethod(); 
     System.out.println(i); 



    } 

}