2013-03-19 4 views
1

У меня проблема, я хочу напечатать hp2, но он говорит об ошибке. Как я могу решить эту проблему? Как я могу напечатать это hp2 без ошибок? Спасибо и извините за мой плохой английский.Java, переменная can not read after Если выбор

import java.util.Scanner; 

public class lala { 

    public static void main (String []args) { 

     Scanner scan = new Scanner(System.in); 
     int hp=100; 
     int hp1; 
     int go=10; 
     int a; 

     hp1=hp-go; 
     System.out.println(hp1); 
     a=scan.nextInt(); 

     int hp2; 
     if (a==1) { 
      hp2=hp1-10; 
     } else {} 

     System.out.println(hp2); 
} 
} 
+2

Дайте это значение по умолчанию, когда вы его объявите, перед if, 'int hp2 = 0;' Или дайте ему значение в 'else' блок. –

+0

Какая ошибка вы получаете. Также @SotiriosDelimanolis Почему бы не опубликовать это как ответ? – w4etwetewtwet

+3

@handuel Так что другие могут получить очки. Мне не нравятся официальные ответы на простые вопросы. –

ответ

3

Инициализировать локальную переменную. Если вы не инициализируете локальную переменную, вы получаете ошибку времени компиляции.

int hp1 = 0; 
int hp2 = 0; 
int a = 0; 

Инициализировать все локальные переменные и HP1, потому что если условие станет ложным, то эта переменная станет Uninitialize и снизу вы печатаете его.

0
import java.util.Scanner; 

public class Test 

{ 

public static void main (String []args) 

{ 

    Scanner scan = new Scanner(System.in); 

    int hp=100; 

    int hp1; 

    int go=10; 

     int a; 

    hp1=hp-go; 

    System.out.println(hp1); 

    a=scan.nextInt(); 

    int hp2 = 0; 

    if (a==1) 

    { 

     hp2=hp1-10; 

    } 

    else 

    { 

    } 

    System.out.println(hp2); 

} 
    } 
+0

Это всего лишь кодовый ответ, ничего существенного. – Makoto

+0

Что такое двойной интервал? –

+0

ошибка из-за hp2 не инициализируется. – Biswajit

0

Инициализировать каждую переменную перед и использовать его в любом из части приложения

0

Присвоить каждой из переменных. По крайней мере, укажите каждую переменную, которой в настоящее время не присвоено значение a 0.

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