因此,此处的代码将采用整数并将其每个数字相乘,例如,如果我输入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;


这个循环一直持续到所有数字都被“截断”并乘以我们的乘积为止

09-10 07:04
查看更多