因此,此处的代码将采用整数并将其每个数字相乘,例如,如果我输入4321
,它将执行4*3*2*1
并得出24
。该代码有效,我的问题是,一切都可以有人向我解释此循环如何工作。因为我基本上使用骨架来编写此代码,但是有人可以引导我了解模数与*=
和/=
一起工作的方式吗?
import java.util.Scanner;
public class Multiplier {
public static void main(String[] args) {
int num, product;
Scanner scan = new Scanner(System.in);
System.out.println("Enter an Integer to be multiplied: ");
num = scan.nextInt();
product = 1;
while (num > 0)
{
product *= (num%10);
num/=10;
}
System.out.println("The Product of the Digits is: " +product);
}
}
最佳答案
在进入循环之前,您应该了解以下几点:
运算符*=
将该值设置为乘以指定数字的值。 *=
是的简写形式
number = number * number;
例如,
int value = 1;
value *= 3;
System.out.println(value);
将输出3,因为速记符号与
int value = 1;
value = value * 3;
System.out.println(value);
运算符
/=
将值设置为该值除以指定的数字。 /=
是的简写形式number = number / number;
重申一下,上面的行与
number /= number;
模运算符
%
将值除以指定的数字后将其设置为余数。例如,
System.out.println(4 % 3);
将输出1,因为
4 % 3 == 1 R 1
(第一个表示我们可以一次除数,R表示余数,最后一个表示4%3的实际结果)考虑以下情况...
您想看看如果您剩下多少钱:
付给十个人100美元
只有$ 1,004
在这种情况下,向所有10个人付款后,剩余的金额为4美元。这种情况与
int remainder = 1004 % 100;
System.out.println(remainder);
我们知道100将乘以1000十次,余数的最终值将是
4
,这将被打印到控制台。好的。现在您了解了这些操作数的作用,现在来看一下while循环。
// while our input number is greater than 0
while( num > 0 ) {
// multiply the product by the remainder of number divided by ten
// (this cuts off the right-most digit of the input number
// and multiplies it to the product)
product *= (num%10);
// what actually sets our input number to number / 10.
num /= 10;
这个循环一直持续到所有数字都被“截断”并乘以我们的乘积为止