【问题标题】:How can I count odd digits in java, but if that number has more then one odd digit count the first one onlyjava - 我如何计算java中的奇数,但如果该数字超过一个奇数,则只计算第一个
【发布时间】:2022-01-07 21:43:56
【问题描述】:

我想编写一个程序来实现一个数字数组,如果该数组中有一个奇数,则将其添加到总和中。例如 123(有 1 和 3 作为奇数)、222(没有奇数)和 434(有 3 作为奇数)。最终总和应为 123+434。这是我想出的,但总和是 123+123+434(Sice 123 有 2 个奇数,它算了两次)

import java.util.Scanner;

public class Ex4 {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int sum = 0;
        System.out.print("Number of numbers: ");
        int j = sc.nextInt();
        System.out.println("List of numbers: ");
        int arr[] = new int[j];
        for(int i = 0; i < j; i++){
            arr[i] = sc.nextInt();
        }
        for(int i = 0; i < j; i++)
        {
            int num = arr[i];

               while (num > 0) {

                  System.out.println(num % 10);
                  if (num%2!=0)
                  {
                     sum= sum+arr[i];
                     System.out.println("SUM IS: "+sum);
                  }
                  
                  num = num / 10;

               }
        }
        
    }

}

【问题讨论】:

    标签: java arrays


    【解决方案1】:

    如果您不想多次添加相同的数字,只需在第一次添加时将 break 退出 while 循环即可。

    while (num > 0) {
    
        System.out.println(num % 10);
        if (num%2!=0)
        {
            sum = sum+arr[i];
            System.out.println("SUM IS: "+sum);
            break; // add this line
        }
    
        num = num / 10;
    
    }
    

    break 语句立即结束循环它所在的循环(无论是forwhile 还是do ... while 循环)。

    还有一个continue 语句(此处不需要),它立即继续到下一个循环迭代,跳过continue 语句之后的任何代码的执行是循环的一部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-19
      相关资源
      最近更新 更多