2015-04-02 2 views
1

Я писал программу тренировок на Java для одного числа, поднятого на другое. Неосознанно я совершил особую ошибку, которую я поймал. Однако ответ все же остался правильным, независимо от ввода, который я даю. Ниже приведен фрагмент кода.Вычислить мощность числа на входе

public static void main(String args[]) 
{ 
    int count; 
    int num1, num2, result = count =1; 
    try(Scanner n1 = new Scanner(System.in)) 
    { 
     System.out.println("Enter the 1st number"); 
     num1 = n1.nextInt(); 
     System.out.println("Enter the 2nd number"); 
     num2 = n1.nextInt(); 
    } 
    while(count<=num2) 
    { 
     if(num2!=0) 
     { 
      result = num1*result; 
      count++; 
     } 
     else 
     { 
      System.out.println(num1+" to the power "+num2+" is "+num1); 
     } 
    } 
    System.out.println(num1+" to the power "+num2+" is "+result); 
} 

Я схожу с ума по поводу того, что именно произошло. почему утверждение «System.out.println (num1 +» на мощность «+ num2 +» равно «+ num1») не печатало значение num1.

Ниже приводится выход:

{ 
Enter the 1st number 
100 
Enter the 2nd number 
0 
100 to the power 0 is 1 
} 

Я использую ECLIPSE LUNA закодировать Java.

+3

Вы можете поделиться кодом, в котором Вы заявляете переменный, а также, как вы читаете их. Измените заголовок этого. – StackFlowed

+0

@StackFlowed: Я напишу весь код. Хотя я проверил с другими входами 100, чтобы мощность 0 как 2 была равна 4 и 4 мощности 5 и так далее. Все абсолютно правильно. – Dhananjay

+0

Слишком плохо, что вы не показываете инициализацию переменных. –

ответ

6

Ну, если предположить, что вы инициализировать count и result к 1 (который, после редактирования, я вижу, было правильное предположение), если num2 является 0, то цикл не вводится вообще, и все, что вы видите выход напечатанной последней строкой (после цикла).

Поэтому не имеет значения, что у вас есть внутри цикла в этом случае - System.out.println(num1+" to the power "+num2+" is "+num1); никогда не будет выполняться, когда num2 0.

+0

Собирался сказать то же самое - результат устанавливается на 1, изначально должен быть так. – user1274820

+0

@Eran: О, я не видел этого. Jeez благодарит парней. Поэтому в этом случае даже если я не использую «If» и «else». Я бы получил правильный результат. – Dhananjay

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