Java 当没有输入正数时,如何显示正确的输出
我不熟悉编码。赋值是计算输入的所有正数的平均值,并在输入零时退出。如果没有输入正数,则显示消息“无法平均” 以下是我到目前为止的情况。当只输入零或负数时,我被打印出“无法计算平均值”的信息所困扰Java 当没有输入正数时,如何显示正确的输出,java,while-loop,average,Java,While Loop,Average,我不熟悉编码。赋值是计算输入的所有正数的平均值,并在输入零时退出。如果没有输入正数,则显示消息“无法平均” 以下是我到目前为止的情况。当只输入零或负数时,我被打印出“无法计算平均值”的信息所困扰 public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int numbers = 0; int sumOfNumbers = 0; double average
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int numbers = 0;
int sumOfNumbers = 0;
double averagePositive = 0;
while (true) {
System.out.println("Give a number: ");
int number = Integer.valueOf(scanner.nextLine());
if (number == 0)
break;
if (number > 0)
sumOfNumbers = number + sumOfNumbers;
if (number > 0)
numbers = numbers + 1;
if (number > 0)
averagePositive = (double)sumOfNumbers / (double)numbers;
}
System.out.println(averagePositive);
}
试一下如下
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Give a number: ");
int num=input.nextInt();
int tot=0; //total
int count=0; // counting the positive numbers
if(num>0){
while(num!=0){
tot+=num;
count++;
System.out.print("Give a number: ");
num=input.nextInt();
if(num<0){
System.out.print("Not possible");
return;
}
}
double avg =(double)tot/n;
System.out.print("Average: "+avg);
}else{
System.out.println("Cannot calculate the average.");
}
}
publicstaticvoidmain(字符串[]args){
扫描仪输入=新扫描仪(System.in);
系统输出打印(“给出一个数字:”);
int num=input.nextInt();
int tot=0;//总计
int count=0;//计算正数
如果(数值>0){
while(num!=0){
tot+=num;
计数++;
系统输出打印(“给出一个数字:”);
num=input.nextInt();
if(num我可能会这样做以保持简单。一般来说,尽量不要将代码压缩在一起。大多数正式项目需要一定程度的样式,通常需要运算符和大括号之间的空格等。从长远来看,它使代码更具可读性,更易于维护
在您的代码中,如果测试次数大于0,则无需重复相同的测试多次,它们可以捆绑在一起。如果程序更大、更复杂,我可能会对变量名称进行更多限定,但对于这样的短程序,简短的名称就足够清晰
continue
和break
是控制循环行为的重要关键字,可用于增加简洁性和清晰度。continue
立即返回循环顶部,break
立即退出最里面的循环。double
除以int
得到double
所以我能够消除一个强制转换。而+=
操作符使这行代码更容易阅读
同样在Java和C中,任何包含一行的if()
或else
子句都不需要大括号,除非一个程序的嵌套方式增加了大括号的清晰度,否则在这种情况下省略大括号通常更为清晰。if
语句在一条语句中说明了这两种方式
import java.util.Scanner;
public class avg
{
static int count = 0;
static double sum = 0;
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("\nEnter a sequence of positive numbers (0 to calculate average):\n");
while (true) {
System.out.print("Number? ");
int n = scanner.nextInt();
if (n < 0) {
System.out.println("Negative numbers not allowed.");
continue;
} else if (n == 0)
break;
sum += (double)n;
++count;
}
System.out.println("Average of " + count + " numbers = " +
(double)(sum / count) + "\n");
System.exit(1);
}
}
import java.util.Scanner;
公共类平均值
{
静态整数计数=0;
静态双和=0;
公共静态void main(字符串[]args){
扫描仪=新的扫描仪(System.in);
System.out.println(“\n输入一个正数序列(0计算平均值):\n”);
while(true){
系统输出打印(“数字”);
int n=scanner.nextInt();
if(n<0){
System.out.println(“不允许使用负数”);
继续;
}else如果(n==0)
打破
和+=(双)n;
++计数;
}
System.out.println(““+count+”数字的平均值=“+
(双倍)(总和/计数)+“\n”);
系统出口(1);
}
}
样本输出:
$ java avg
Enter a sequence of positive numbers (0 to calculate average)
Number? 1
Number? 2
Number? 3
Number? 4
Number? 5
Number? -6
Negative numbers not allowed.
Number? 0
Average of 5 numbers = 3.0
$java平均值
输入正数序列(0计算平均值)
1号
2号
3号
4号
5号
数字?-6
不允许使用负数。
数字?0
5个数字的平均值=3.0
欢迎来到StackOverflow。对于任何问答,如果任何答案对您有帮助,请单击向上箭头向上投票(如果您在网站上看到任何您喜欢的问题,请向上投票)。如果您认为答案能为您解决问题,请单击它旁边的复选标记以接受它作为解决方案。这鼓励人们通过帮助他们获得声誉来回答问题。