使用 while 循环计算负整数和正整数
count negative and positive integer with while loop
需要修复我的程序。
用WHILE LOOP写一个java程序:有多少正数和负数?用户提示
整数并以数字 0 结尾。
您将在我的输出中看到,如果用户输入 1 2 3 -1 -2 -3 0
我的输出答案:2 个正面/3 个负面。
第一个正数不算数。
请让我知道我的错误在哪里。我找不到它。
Scanner input= new Scanner(System.in);
//int data;
int count = 0;
int negative=0;
int positive =0;
System.out.print("Enter an integer (Program ends if enter 0): ");
int data = input.nextInt();
while (data !=0) {
System.out.print("Enter an integer (Program ends if enter 0): ");
data=input.nextInt();
//count++;
if (data < 0){
negative++;
}else if (data > 0){
positive++;
}
count++;
}
System.out.println(positive + " positive numbers");
System.out.println(negative + " negative numbers");
}
}
output:
run:
Enter an integer (Program ends if enter 0): 1
Enter an integer (Program ends if enter 0): 2
Enter an integer (Program ends if enter 0): 3
Enter an integer (Program ends if enter 0): -1
Enter an integer (Program ends if enter 0): -2
Enter an integer (Program ends if enter 0): -3
Enter an integer (Program ends if enter 0): 0
2 positive numbers
3 negative numbers
BUILD SUCCESSFUL (total time: 11 seconds)
您的代码跳过了第一个条目,因为您是这样编码的。看看这些行:
System.out.print("Enter an integer (Program ends if enter 0): ");
int data = input.nextInt();
你要求用户输入数据,但你没有对它做任何事情。您所有的数据处理都发生在 while 循环中。
将这两行替换为:
int data = 0;
您需要做的就是声明您用来获取输入以供稍后使用的变量——您不需要立即使用它。
您还必须修改 while 条件,以便在循环的第一次迭代中,值为 0 的数据不会自动退出程序:
while ((data !=0) || (count == 0 && data == 0)) {
输出:
Enter an integer (Program ends if enter 0): 1
Enter an integer (Program ends if enter 0): 2
Enter an integer (Program ends if enter 0): 3
Enter an integer (Program ends if enter 0): -1
Enter an integer (Program ends if enter 0): -2
Enter an integer (Program ends if enter 0): -3
Enter an integer (Program ends if enter 0): 0
3 positive numbers
3 negative numbers
您似乎是在 while 循环之外获取第一个输入。
System.out.print("Enter an integer (Program ends if enter 0): ");
int data = input.nextInt(); // the first input 1 store in here
并且此 1 未选中。
while (data !=0) {
System.out.print("Enter an integer (Program ends if enter 0): ");
data=input.nextInt();// 2,3,-1,-2,-3, 0 are inside the loop.
只检查这个值。
进入循环后,您超越了第一个输入。
- 您正在读取输入并检查输入是否不为零
- 再次进入循环后,您将从扫描仪读取输入并将其存储到变量数据中(此处先前的数据将被覆盖)
更新代码:
扫描仪输入 = 新扫描仪(System.in);
// int data;
int count = 0;
int negative = 0;
int positive = 0;
System.out.print("Enter an integer (Program ends if enter 0): ");
int data = input.nextInt();
while (data != 0) {
// count++;
if (data < 0) {
negative++;
} else if (data > 0) {
positive++;
}
count++;
System.out.print("Enter an integer (Program ends if enter 0): ");
data = input.nextInt();
}
System.out.println(positive + " positive numbers");
System.out.println(negative + " negative numbers");
package Loops;
import java.util.Scanner;
import java.util.SortedMap;
public class Question12 {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
System.out.println("How many numbers you want to enter?\n");
int x= sc.nextInt();
int [] data= new int[x];
for(int i=0;i<data.length;i++){
System.out.println("Enter the number "+(i+1));
data[i]=sc.nextInt();
}
int count=0;
int negative=0;
int zero=0;
for(int i: data){
if(i>0){
count++;
}else if(i<0){
negative++;
}else if(i==0){
zero++;
}}
System.out.println("The positive number count is: "+count);
System.out.println("The negative number count is: "+negative);
System.out.println("The zero number count is: "+zero);
}
}
需要修复我的程序。 用WHILE LOOP写一个java程序:有多少正数和负数?用户提示 整数并以数字 0 结尾。 您将在我的输出中看到,如果用户输入 1 2 3 -1 -2 -3 0 我的输出答案:2 个正面/3 个负面。 第一个正数不算数。 请让我知道我的错误在哪里。我找不到它。
Scanner input= new Scanner(System.in);
//int data;
int count = 0;
int negative=0;
int positive =0;
System.out.print("Enter an integer (Program ends if enter 0): ");
int data = input.nextInt();
while (data !=0) {
System.out.print("Enter an integer (Program ends if enter 0): ");
data=input.nextInt();
//count++;
if (data < 0){
negative++;
}else if (data > 0){
positive++;
}
count++;
}
System.out.println(positive + " positive numbers");
System.out.println(negative + " negative numbers");
}
}
output:
run:
Enter an integer (Program ends if enter 0): 1
Enter an integer (Program ends if enter 0): 2
Enter an integer (Program ends if enter 0): 3
Enter an integer (Program ends if enter 0): -1
Enter an integer (Program ends if enter 0): -2
Enter an integer (Program ends if enter 0): -3
Enter an integer (Program ends if enter 0): 0
2 positive numbers
3 negative numbers
BUILD SUCCESSFUL (total time: 11 seconds)
您的代码跳过了第一个条目,因为您是这样编码的。看看这些行:
System.out.print("Enter an integer (Program ends if enter 0): ");
int data = input.nextInt();
你要求用户输入数据,但你没有对它做任何事情。您所有的数据处理都发生在 while 循环中。
将这两行替换为:
int data = 0;
您需要做的就是声明您用来获取输入以供稍后使用的变量——您不需要立即使用它。
您还必须修改 while 条件,以便在循环的第一次迭代中,值为 0 的数据不会自动退出程序:
while ((data !=0) || (count == 0 && data == 0)) {
输出:
Enter an integer (Program ends if enter 0): 1
Enter an integer (Program ends if enter 0): 2
Enter an integer (Program ends if enter 0): 3
Enter an integer (Program ends if enter 0): -1
Enter an integer (Program ends if enter 0): -2
Enter an integer (Program ends if enter 0): -3
Enter an integer (Program ends if enter 0): 0
3 positive numbers
3 negative numbers
您似乎是在 while 循环之外获取第一个输入。
System.out.print("Enter an integer (Program ends if enter 0): ");
int data = input.nextInt(); // the first input 1 store in here
并且此 1 未选中。
while (data !=0) {
System.out.print("Enter an integer (Program ends if enter 0): ");
data=input.nextInt();// 2,3,-1,-2,-3, 0 are inside the loop.
只检查这个值。
进入循环后,您超越了第一个输入。
- 您正在读取输入并检查输入是否不为零
- 再次进入循环后,您将从扫描仪读取输入并将其存储到变量数据中(此处先前的数据将被覆盖)
更新代码:
扫描仪输入 = 新扫描仪(System.in);
// int data;
int count = 0;
int negative = 0;
int positive = 0;
System.out.print("Enter an integer (Program ends if enter 0): ");
int data = input.nextInt();
while (data != 0) {
// count++;
if (data < 0) {
negative++;
} else if (data > 0) {
positive++;
}
count++;
System.out.print("Enter an integer (Program ends if enter 0): ");
data = input.nextInt();
}
System.out.println(positive + " positive numbers");
System.out.println(negative + " negative numbers");
package Loops;
import java.util.Scanner;
import java.util.SortedMap;
public class Question12 {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
System.out.println("How many numbers you want to enter?\n");
int x= sc.nextInt();
int [] data= new int[x];
for(int i=0;i<data.length;i++){
System.out.println("Enter the number "+(i+1));
data[i]=sc.nextInt();
}
int count=0;
int negative=0;
int zero=0;
for(int i: data){
if(i>0){
count++;
}else if(i<0){
negative++;
}else if(i==0){
zero++;
}}
System.out.println("The positive number count is: "+count);
System.out.println("The negative number count is: "+negative);
System.out.println("The zero number count is: "+zero);
}
}