Basic Java While逻辑,它是如何工作的?

问题描述 投票:-6回答:1
public static int sumDigits(int number) {

    if(number < 10) {
        return -1;
    }

    int sum = 0;
    int remainder = 0;

    while(number > 0) {
        remainder = number % 10; 
        sum = sum + remainder; 
        number = number / 10;  

    }
    return remainder;
}

我是Java编程的非常初学者,目前在while循环逻辑中。我在理解此代码时遇到困难。对于上下文,此代码将任何给定整数的数字相加,例如125将给出8的输出,因为1 + 2 + 5 = 8。

我不明白那一面的部分,比如说数字是125,由于125%10是5,所以余数应该是5,因为0 + 5,所以总和应该是5,因为它是int,所以数字应该是12。 Sum如何给出1 + 2 + 5?

一些帮助将不胜感激!谢谢。

java while-loop
1个回答
0
投票

这些评论提供了更直接的答案。但是随着您的进步,您可能需要注意一些关于Java的事情,您可以使用+=运算符,/=运算符,并且可以查找和使用任何标准Java异常类或创建自己的异常类(通过继承自基类Exception),您将在后面学习。但这是优于C的优势之一,人们通常使用-1< 0(用常数命名或不命名)来表示错误。异常不那么模棱两可,如果未被捕获(例如默认情况下),则抛出堆栈跟踪以帮助诊断-例如找出发生故障的位置。最后,通常在编码中,您要尽可能避免使用“幻数”,并将其与命名常量进行比较,以识别任何给定数字的含义,以减少混乱并减少反向工程代码的使用时间,并长期维护代码运行。

public static int sumDigits(int number) throws IllegalArgumentException
{
    final static int MIN_VALUE = 0;

    if (number < MIN_VALUE)
        throw new IllegalArgumentException("Number must be >= " + MIN_VALUE);

    int sum = 0;
    int remainder = 0;

    while (number > 0) {
        remainder = number % 10; 
        sum += remainder; 
        number /= 10;  
    }
    return remainder;
}
© www.soinside.com 2019 - 2024. All rights reserved.