【问题标题】:For loop with summing feature具有求和功能的 For 循环
【发布时间】:2015-06-07 01:45:30
【问题描述】:

我正在尝试编写一个 for 循环,该循环将接受用户输入,无论它是正数还是负数,都显示输入数字,然后显示数字的总和。我可以尽可能地显示数字,但我很难正确求和。

import java.util.Scanner;

public class DisplayandSum {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        //Variable declaration
        int size;
        int Num1;
        int count = 0;   //LCV
        int sum = 0;    //Sum of inputs
        String newNum;  // Declared string for user input         
        System.out.println("Please enter an integers and press enter.");

        newNum = input.next();

        Num1 = Integer.parseInt(newNum);

        size = newNum.length();

        System.out.print("These are your numbers: ");

        if (Num1 > 0) //If number is positive
        {
            for (count = 0; count <= (size - 1); count++) {
                System.out.print(newNum.charAt(count) + "");
            }
        } else if (Num1 < 0) // If number is negative
        {
            System.out.print("-");

            for (Num1 = 1; Num1 <= (size - 1); count++) {
                System.out.print(newNum.charAt(count) + "");
            }
        }
        if (Num1 > 0) //If positive sum
        {
            for (count = 0; count < (size - 1); count++) {
                sum = sum + count;
            }

        } else if (Num1 < 0) // If negative sum 
        {
            for (Num1 = size; Num1 > 2; Num1--) {
                Num1 = Math.abs(Num1);
            }
            sum = sum + Num1 % 10;
            Num1 = Num1 / 10;
        }

        sum = sum + (0 - Num1);

        System.out.println("\nand the sum of your digits is: " + sum);

    }
}

【问题讨论】:

    标签: java loops for-loop sum


    【解决方案1】:

    当您说“数字之和”时,我假设您实际上是指“数字之和”?

    您的代码比它需要的更复杂。

    // Variable declaration
    int sum = 0;    //Sum of inputs
    String newNum;  // Declared string for user input         
    
    System.out.println("Please enter an integer and press enter.");
    newNum = input.next();
    
    size = newNum.length();
    
    System.out.print("These are your numbers: ");
    
    for (count = 0; count < size; count++)
    {
       char  ch = newNum.charAt(count);
       if (Character.isDigit(ch) {
          System.out.print(ch);
          sum += (ch - '0');
       }
    }
    
    System.out.println("\nand the sum of your digits is: " + sum);
    

    【讨论】:

    • 不错的方法,但您也可以使用一些简化。 &lt;= size -1认真吗?
    • 是的。没看那个专注于循环内脏。修复。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-23
    • 2017-06-25
    • 1970-01-01
    • 1970-01-01
    • 2019-12-21
    • 1970-01-01
    相关资源
    最近更新 更多