Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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_Loops_For Loop - Fatal编程技术网

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

Java 添加前十个奇数-输出不正确,java,loops,for-loop,Java,Loops,For Loop,我正在写一个程序,把前十个奇数相加,最后求和 这是到目前为止我的代码。我的代码读取10个数字列表中的奇数。我希望我的代码能够读取10个奇数,即使输入的数字超过10个。我知道问题是I

我正在写一个程序,把前十个奇数相加,最后求和

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

import java.util.Scanner;
公开课问题14 {

publicstaticvoidmain(字符串[]args){
扫描仪键盘=新扫描仪(System.in);
int奇数,和=0;
System.out.println(“输入数字”);
int i=0;
而(i<10){
奇数=键盘.nextInt();
如果(奇数%2!=0){
总和=总和+奇数;
i++;
}
}
System.out.println(“前10个奇数之和为”+和);
}

}

将其包装在while循环中

当oddnumbers<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);
inti=0
而(i<10){
奇数=键盘.nextInt();
如果(奇数%2!=0){
总和=总和+奇数;
i++;
}
}
System.out.println(“前10个奇数之和为”+和);
编辑:完整代码

导入java.util.Scanner

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

/** * *@作者史蒂文格林22 */ 公共类纽曼{

/**
 * @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));
}
/**
*@param指定命令行参数
*/
公共静态void main(字符串[]args){
//此处的TODO代码应用程序逻辑
扫描仪扫描=新扫描仪(System.in);
int i=0;
整数和=0;
int输入;
int inputCount=0;
而(i<10){
//将其置于while循环中,每次都会提示用户。
System.out.println(“新号码?”);
输入=scan.nextInt();
inputCount++;
如果(输入%2==1){
总和+=输入;
i++;
}
}
System.out.println(“总和:+sum”);
System.out.println(“赔率:+i);
System.out.println(“输入数量:“+inputCount”);
System.out.println(“我错过键入sout选项卡的平均成本:”+(inputCount/sum));
}
}这应该行得通

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);
}
publicstaticvoidmain(字符串[]args){
扫描仪键盘=新扫描仪(System.in);
int奇数,和=0;
System.out.println(“输入数字”);
int i=0;

while(i原则上,您不知道用户将在程序中输入多少数字,因此您希望使用
while
循环,而不是
for
循环

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

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

while(counter < 10) {
    // loop
}
while(计数器<10){
//环路
}

每当遇到奇数值时,您还需要更新计数器。

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

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

while(oddnumbercount对不起,布莱恩。正在使用电话。你能帮我编辑一下吗?如果你不知道,那就是。谢谢!)非常感谢。尝试过这个,但进入后没有任何效果numbers@treasure-您需要通过添加相关的扫描行等方式对其进行一些修改。我认为其他人发布了您需要的完整代码,但从我编写的内容来看,您自己将其拼凑起来应该相对容易。您的输出是什么?输出不是ng。在我输入数字后,它不会做任何事情。解释得比我好得多:)是的,使用while循环更有意义。你的控制台输出呢?
int oddNumberCount = 0;
int inputNumber;
while(oddNumberCount<10)
{
inputNumber = keyboard.nextInt();
if(inputNumber%2!=0)
{
      sum = sum+inputNumber;
      oddNumberCount++;
}
}