Java int变量是';t在方法执行后更改
我现在正在做一个项目,所以你可能会看到一些没有被使用的代码,不管怎样,我试图从clas变量中接收一个1、2或3的值,我想从CLASSELECT方法返回这个值,但每次运行它时,我都会不断接收到clas仍然是0Java int变量是';t在方法执行后更改,java,swing,Java,Swing,我现在正在做一个项目,所以你可能会看到一些没有被使用的代码,不管怎样,我试图从clas变量中接收一个1、2或3的值,我想从CLASSELECT方法返回这个值,但每次运行它时,我都会不断接收到clas仍然是0 import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class Test4 extends JFra
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Test4 extends JFrame implements ActionListener{
public static void main(String[] args) {
//Deklaration
int clas = 0; // | 1 = Warrior | 2 = Tank | 3 = Archer |
ClassSelect(clas);
System.out.println(clas);
}
private static int ClassSelect(int e) {
while(e == 0){
String classs = JOptionPane.showInputDialog(null, "What class would you like to be? Warrior, Tank or Archer?");
System.out.println(classs);
if(classs.equals( "Warrior" ) || classs.equals( "warrior" )){
e = e + 1;
}
else if(classs.equals( "Tank" ) || classs.equals( "tank" )){
e = e + 2;
}
else if(classs.equals( "Archer" ) || classs.equals( "archer" )){
e = e + 3;
System.out.println(e);
}
else{
JOptionPane.showMessageDialog(null, "There is no class called " + classs);
e = 0;
}
}
return e;
}
@Override
public void actionPerformed(ActionEvent arg0) {
}
}
Java总是按值传递 相反:
ClassSelect(clas);
应该是:
clas=ClassSelect(clas);
ClassSelect(clas)代码>应该是clas=ClassSelect(clas)代码>扩展JFrame
?真的,为什么?顺便说一句:class.equalsIgnoreCase(“战士”)
比(classs.equals(“战士”)| | classs.equals(“战士”)
容易。在我看来,战士应该是坦克。