来源:
import java.util.Scanner;
class Test1{
public static void main(String[] args){
int x,y,ir;
x = 10;
y = 5;
Scanner scan = new Scanner(System.in);
ir = scan.nextInt();
switch(ir){
case 1: y++;
break;
case 2: y--;
break;
case 3: x++;
break;
case 4: x--;
break;
}
}
}
我想多次重复这一部分:
switch(ir){
case 1: y++;
break;
case 2: y--;
break;
case 3: x++;
break;
case 4: x--;
break;
}
但我不想写不止一次。这就是为什么我喜欢把它写成一个程序或方法。有没有办法编写一个可以在main方法中修改变量的方法?
答案 0 :(得分:3)
在您的情况下,您无法使用primitive types。但是,如果使用引用类型,则可以在将其传递给另一个方法时修改其内容。
您的问题的解决方案是在更高级别定义变量(这里是实例范围)或将包装类型传递给您的方法(例如int
具有相应的引用类型{{ 1}})。后一种方法是我不建议你这样做的。
另一种可能更有趣的解决方案是将其包含在Integer
方法的a loop内。我不清楚你要做什么,但你一定要看看它是否能像这样解决。
请注意,您使用的是main
方法,因此您要调用的任何方法都必须为main
。正确的代码不会这样做,而是使用对象和实例方法。
但不,你不能嵌套方法。
答案 1 :(得分:2)
您可以通过在main方法中创建一个提供该功能的类来实现。
一个简单的例子:
class Test1 {
public static void main(String[] args) {
int x = 0;
int y = 0;
class MyClass {
public int x;
public int y;
MyClass() {
x = 0;
y = 0;
}
public void doSomething() {
x++;
y++;
}
}
MyClass myClass = new MyClass();
myClass.doSomething();
myClass.doSomething();
myClass.doSomething();
x = myClass.x;
y = myClass.y;
}
}
答案 2 :(得分:0)
它使用静态变量。 我的表格:
import java.util.Scanner;
class a{
public static int x = 10;
public static int y = 10;
public static void lep(int ir){
switch(ir){
case 1: y++;
break;
case 2: y--;
break;
case 3: x++;
break;
case 4: x--;
break;
}
}
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
int ir = scan.nextInt();
lep(ir);
System.out.println("x: " + x + " y: " + y);
}
}
解决。非常感谢你!