我正在编写一个程序,它会添加前十个奇数,并在结尾处得到总和。
到目前为止,这是我的代码。我的代码读取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);
}
}
答案 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++;
}
}