添加前十个奇数 - 输出不正确

时间:2013-07-22 00:20:59

标签: java loops for-loop

我正在编写一个程序,它会添加前十个奇数,并在结尾处得到总和。

到目前为止,这是我的代码。我的代码读取10个数字列表中的奇数。即使输入的数字超过10个,我希望我的代码能够读取10个奇数。我知道问题是i < 10,这使程序在第10个数字后停止。

import java.util.Scanner;

公共课问题14 {

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

    int odd,sum=0;
    System.out.println("enter numbers");

    int i = 0;
            while(i < 10) {
                odd = keyboard.nextInt();
                if (odd % 2 != 0) {
                    sum = sum + odd;
                    i++;
                }
            }
            System.out.println("The sum of first 10 odd numbers is " + sum);

}

}

4 个答案:

答案 0 :(得分:2)

将其包裹在while循环中。

虽然oddnumbers&lt; 10要求一个新号码。

int i = 0
while(i < 10) {
    odd = keyboard.nextInt();
    if (odd % 2 != 0) {
        sum = sum + odd;
        i++;
    }
}
System.out.println("The sum of first 10 odd numbers is " + sum);

编辑:完整代码

import java.util.Scanner;

/ *  *要更改此模板,请选择“工具”|模板  *并在编辑器中打开模板。  * /

/ **  *  * @author stevengreen22  * / 公共课NewMain {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    // TODO code application logic here 
    Scanner scan = new Scanner(System.in);

    int i = 0; 
    int sum = 0;
    int input;
    int inputCount = 0;

    while (i < 10){
        //Having this inside the while loop prompts the user every time.  
        System.out.println("New number?");
        input = scan.nextInt();
        inputCount++;

        if(input % 2 == 1){
            sum += input;
            i++;
        }
    }

    System.out.println("sum: "+sum);
    System.out.println("Number of odds:" + i);
    System.out.println("Numbe of inputs: " +inputCount);
    System.out.println("Average cos I miss typing sout tab:" + (inputCount/sum));
}

}

答案 1 :(得分:1)

原则上,您不知道用户要输入多少个数字,因此您希望使用while循环而不是for循环。

当他们知道要迭代多少元素时,选择一个for循环;当他们不知道需要迭代多少元素时,会选择一个while循环。

您需要在循环外定义另一个名为counter的变量,并将其用作循环变量约束。

while(counter < 10) {
    // loop
}

每当遇到奇数值时,您还需要更新counter

答案 2 :(得分:0)

这应该有效

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

    int odd,sum=0;
    System.out.println("enter numbers");

    int i=0;
    while (i<10){
        odd=keyboard.nextInt();
        if (odd%2!=0){
            sum=sum+odd;
            i++;
        }  
    }
    System.out.println("The sum of first 10 odd numbers is "+sum);
}

答案 3 :(得分:0)

只需用while循环替换for循环,并跟踪整数中奇数的数量:

int oddNumberCount = 0;
int inputNumber;
while(oddNumberCount<10)
{
inputNumber = keyboard.nextInt();
if(inputNumber%2!=0)
{
      sum = sum+inputNumber;
      oddNumberCount++;
}
}