Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.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如何在循环中添加基元值-(for)_Java_Loops_Add_Primitive Types - Fatal编程技术网

JAVA如何在循环中添加基元值-(for)

JAVA如何在循环中添加基元值-(for),java,loops,add,primitive-types,Java,Loops,Add,Primitive Types,我试着取一个随机数,拆分它,然后加上它的数字,所以数字“3457”将是。。。。。。。。3 + 4 + 5 + 7. 但我遇到了必须在循环中添加值的问题,但我发现这很困难,因为我循环中的大多数类型都是基本类型,因此我不能真正使用“nextInt()”方法。。。所以我的问题是。。。如何在循环中添加值。 这是我到目前为止的代码 import java.util.Scanner; public class HellloWorld { public static void main(String

我试着取一个随机数,拆分它,然后加上它的数字,所以数字“3457”将是。。。。。。。。3 + 4 + 5 + 7. 但我遇到了必须在循环中添加值的问题,但我发现这很困难,因为我循环中的大多数类型都是基本类型,因此我不能真正使用“nextInt()”方法。。。所以我的问题是。。。如何在循环中添加值。 这是我到目前为止的代码

import java.util.Scanner;
public class HellloWorld {

    public static void main(String[] args) {
       Scanner input = new Scanner(System.in);
           try {
           System.out.println("Please Enter your number: " + "\n");
           int int1 = Integer.parseInt(input.next());
           int life = String.valueOf(int1).length();
           for (int i = life; i >= 1; i--) {
           int int2 = int1 / (int)(Math.pow(10, i-1));
           int int3 = int2 % (int)(Math.pow(10,1));

               if (i == 1) {
            System.out.print(int3 + " = ");
        } else {
            System.out.print(int3 + " + ");
        }
    }

    } finally {
        input.close();
    }
}
}
  • 对于sum情况,您可以使用另一个变量,比如说
    sum
    ,有点像-

    int sum = 0;
    
    for(...) {
    ....
    sum = sum + yourDigit;
    if{...} else {...}
    } //end of for loop
    System.out.println(sum);
    
  • 你的逻辑似乎不是在求和——试着用(1)来看看你是否得到了想要的

  • 想到

    int sum = 0; 
    int input = int1; 
    while (input != 0) {
       int lastdigit = input % 10;  //(right to left) one's to tens to hundreds place value
       sum += lastdigit; // sum = sum + lastDigit
       input /= 10; // your if..else can be based on this value
    }
    
  • 对于sum情况,您可以使用另一个变量,比如说
    sum
    ,有点像-

    int sum = 0;
    
    for(...) {
    ....
    sum = sum + yourDigit;
    if{...} else {...}
    } //end of for loop
    System.out.println(sum);
    
  • 你的逻辑似乎不是在求和——试着用(1)来看看你是否得到了想要的

  • 想到

    int sum = 0; 
    int input = int1; 
    while (input != 0) {
       int lastdigit = input % 10;  //(right to left) one's to tens to hundreds place value
       sum += lastdigit; // sum = sum + lastDigit
       input /= 10; // your if..else can be based on this value
    }
    

  • 您可以使用
    Stream
    这样做:

    public static void main(String... args) {
      Scanner sc = new Scanner(System.in);
      String strNum = sc.next();
      int sum = Arrays.stream(strNum.split(""))
                  .mapToInt(str -> Integer.parseInt(str))
                  .sum();
      System.out.println(sum);
    }
    

    您可以使用
    Stream
    这样做:

    public static void main(String... args) {
      Scanner sc = new Scanner(System.in);
      String strNum = sc.next();
      int sum = Arrays.stream(strNum.split(""))
                  .mapToInt(str -> Integer.parseInt(str))
                  .sum();
      System.out.println(sum);
    }
    

    我怪异但史诗般的做事方式:

    public static void main(String[] args) {
        int a = 1234;   //say you get that number somehow... lets say thru Scanner  
        String b = String.valueOf(a);   //convert to a string   
        int result = 0;     
        for (int i = 0; i < b.length(); i++) {
            result = result + Integer.parseInt(Character.toString(b.charAt(i))); // here a conversation is happening of epic scale
        }
                System.out.println("result is: "+ result);
    }
    
    publicstaticvoidmain(字符串[]args){
    int a=1234;//假设你以某种方式得到了那个数字……比如说通过扫描仪
    String b=String.valueOf(a);//转换为字符串
    int结果=0;
    对于(int i=0;i
    我怪异但史诗般的做事方式:

    public static void main(String[] args) {
        int a = 1234;   //say you get that number somehow... lets say thru Scanner  
        String b = String.valueOf(a);   //convert to a string   
        int result = 0;     
        for (int i = 0; i < b.length(); i++) {
            result = result + Integer.parseInt(Character.toString(b.charAt(i))); // here a conversation is happening of epic scale
        }
                System.out.println("result is: "+ result);
    }
    
    publicstaticvoidmain(字符串[]args){
    int a=1234;//假设你以某种方式得到了那个数字……比如说通过扫描仪
    String b=String.valueOf(a);//转换为字符串
    int结果=0;
    对于(int i=0;i
    实现这一点的方法太多了。我要在一个门派里有一条路下去这里有太多的方法可以做到这一点。我要在一个门派里走一段路谢谢,先生,这很有效。但如果我可以再问你一个问题的话。当for循环运行第一次迭代时。然后对语句“sum=sum+digit”进行求值,从而使“sum”的值等于“60”。从这里开始,sum的值现在是永久性的“60”而不再是初始化值吗?@Jamisco-在循环中,如果我可以这样说的话,sum永远不会被重新初始化。因此,该值仍然是循环中最后一次迭代中的值。谢谢,先生,它可以工作。但如果我可以再问你一个问题的话。当for循环运行第一次迭代时。然后对语句“sum=sum+digit”进行求值,从而使“sum”的值等于“60”。从这里开始,sum的值现在是永久性的“60”而不再是初始化值吗?@Jamisco-在循环中,如果我可以这样说的话,sum永远不会被重新初始化。因此,该值仍然是循环中最后一次迭代中的值。