我正在用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。
最佳答案
好吧,假设您将count
和result
初始化为1(在编辑后,我认为这是一个正确的假设),如果num2
为0,则根本不输入循环,而您看到的只是最后一行(循环之后)打印的输出。
因此,在这种情况下,循环中的内容无关紧要-当System.out.println(num1+" to the power "+num2+" is "+num1);
为0时,将永远不会执行num2
。