String name;                public void showName(){

con=false;
do{
System.out.print("请选择角色(1:老闪\t2:老蓝\t3:老3)");
Scanner input=new Scanner(System.in);
int num1=input.nextInt();
System.out.print(name);
switch (num1){
case 1:
 name="刘备";
break;
case 2:
name="孙权";
break;
case 3:
name="曹操";
break;
default:
System.out.print("输入错误");
con=false;
break;
}
}while(con==true);
}

}
----------------------------------------------------------------
我调用这个方法的时候name会变成null 是哪里错了呢

解决方案 »

  1.   

    请把你的System.out.print(name); 移到switch选择以后
      

  2.   

    public class Test
    {
    String name; public void showName()
    { boolean con = false;
    do
    {
    System.out.print("请选择角色(1:老闪\t2:老蓝\t3:老3)");
    Scanner input = new Scanner(System.in);
    int num1 = input.nextInt();

    switch (num1)
    {
    case 1:
    name = "刘备";
    break;
    case 2:
    name = "孙权";
    break;
    case 3:
    name = "曹操";
    break;
    default:
    System.out.print("输入错误");
    con = false;
    break;
    }
    System.out.print(name);
    } while (con == true);
    } public static void main(String[] args)
    {
    Test t = new Test();
    t.showName();
    }
    }运行结果:
    请选择角色(1:老闪 2:老蓝 3:老3)1
    刘备name这个变量没有初始化,System.out.print("请选择角色(1:老闪\t2:老蓝\t3:老3)"); 
    Scanner input=new Scanner(System.in); 
    int num1=input.nextInt(); 
    System.out.print(name); 
    switch (num1){ 
    这样放的话,初始化类是String类型的对象默认是赋值是null