Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 计算整数值中每个数字的总和_Java_Casting_Integer_Add - Fatal编程技术网

Java 计算整数值中每个数字的总和

Java 计算整数值中每个数字的总和,java,casting,integer,add,Java,Casting,Integer,Add,在本练习中,我假设获取任意整数并计算每个数字的某些值。 我发现最好的方法是使用下面的方法。在for循环中,转换为字符串并逐个读取每个字符并求和每个字符的总和 import java.util.InputMismatchException; import java.util.Scanner; public class SommeChiffreNombre { /** * @param args * * Demandez à l’usager d’ent

在本练习中,我假设获取任意整数并计算每个数字的某些值。 我发现最好的方法是使用下面的方法。在for循环中,转换为字符串并逐个读取每个字符并求和每个字符的总和

import java.util.InputMismatchException;
import java.util.Scanner;


public class SommeChiffreNombre {

    /**
     * @param args
     * 
     * Demandez à l’usager d’entrer un nombre entier
     * Ensuite, calculez la somme de tous les chiffres de ce
     * nombre et affichez le résultat.
     * 
     * L’affichage obtenu doit être semblable aux suivants :
     * 
     * Entrez un nombre entier :
     * 5361
     * La somme des chiffres est : 15
     * 
     * 
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        try {
            System.out.print("Entrez un nombre entier : ");
            Scanner in = new Scanner(System.in);
            int nb = in.nextInt();
            in.close();
            int somme = 0;

            for(int i=0;i<Integer.toString(nb).length();i++){
                char charVal = Integer.toString(nb).charAt(i);
                somme += Character.getNumericValue(charVal); 
            }
            System.out.println("La somme des chiffres est : "+somme);
        } catch (InputMismatchException e) {
            // TODO Auto-generated catch block
            System.out.println("You didn't enter an Integer Value");
        }
    }
}
import java.util.InputMismatchException;
导入java.util.Scanner;
公共类SommeChiffreNombre{
/**
*@param args
* 
*名义上的需求
*套间,计算房间面积
*名字和地址。
* 
*我要做的事情是,我要做的是:
* 
*名称如下:
* 5361
*智利索姆东部:15
* 
* 
*/
公共静态void main(字符串[]args){
//TODO自动生成的方法存根
试一试{
系统输出打印(“Entrez un nombre entier:”);
扫描仪输入=新扫描仪(系统输入);
int nb=in.nextInt();
in.close();
int-somme=0;

对于(int i=0;i您可以使用模运算符并使用整数除法:

int sum = 0;

while (n > 0) {
    sum += n % 10;
    n /= 10;
}

在@Blender的帮助下,这是正确的方法

import java.util.Scanner;


public class Question8Simple {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        System.out.print("Entrez un nombre entier : ");
        Scanner in = new Scanner(System.in);
        int nb = in.nextInt();
        in.close();
        int sum = 0;

        while (nb>=1) {
            sum += nb % 10;
            nb /= 10;
        }
        System.out.println(sum);
    }

}

@BLuFeNiX我看到了。没有表达式循环就无法工作。奇怪!

也许,
for
更适合这里?@lifus:
for(;n;n/=10)
?没错,
for(;n>0;n/=10)
只是为了让它可以复制/复制。@lifus:我不会把它放在我的代码中。
while
循环更清晰。@hayonj:这是一个有效的
for
循环。
for(;;)
也是一个有效的循环。