2016-03-16 2 views
1

Мне нужно использовать переменную, созданную внутри оператора if. Мой код, однако, не компилируется. Мне просто нужна помощь в ее компиляции, сохраняя при этом функциональность одинаковой.Java-использование переменной, созданной в операторе if

Вот фрагмент кода

else if (in.equals("Monster") && in1.equals("Orc")) 
    { Players Character = new Orc(); 
    System.out.println("You have chosen "+in+" type "+in1+". Monsters in general are more attack orientated"); 
    } 
    Character.addAttack(5); 
+7

Вам просто нужно объявить 'характер' вне вашего if. – user2004685

ответ

3

Для того, чтобы сделать он работает вне вашего if условиях, вам просто нужно объявить Character за пределами вашего if состояние.

/* Declare it here */ 
Players Character = null; 

if(...) { 
/* Do Something Here */ 
} else if (in.equals("Monster") && in1.equals("Orc")) { 
    Character = new Orc(); 
    System.out.println("You have chosen " + in + " type " + 
         in1 + ". Monsters in general are more attack orientated"); 
} 

/* Now you can use it here */ 
Character.addAttack(5); 
2

Вы должны переместить декларацию за пределами if:

Players character = null; 
// ... 
else if (in.equals("Monster") && in1.equals("Orc")) 
{ 
    character = new Orc(); 
    System.out.println("You have chosen "+in+" type "+in1+". Monsters in general are more attack orientated"); 
} 
// TODO: check for null 
character.addAttack(5); 

Некоторых чтений о переменном объеме: http://www.cs.berkeley.edu/~jrs/4/lec/08

+1

Возможно, вам также понадобится ссылка на [соглашения об именах] (http://www.oracle.com/technetwork/java/codeconventions-135099.html) (поскольку вы уже исправили его имя переменной). – Tom

+0

Спасибо, что сработали, чтобы скомпилировать и запустить – duldi

+1

Спасибо за ссылку @Tom –

Смежные вопросы