以下问题来自Daniel Liang的《Java简介》一书的第5章:
(计算正数和负数并计算数字的平均值)编写一个程序,该程序读取未指定数量的整数,确定已读取的正值和负值数,并计算输入值的总和平均值(不计算零)。程序以输入 0 结束。将平均值显示为浮点数。下面是一个示例运行: 输入一个整数,如果为 0,则输入结束:1 2 -1 3 0 正数为
3
负数为 1
总计为 5.0
平均值为 1.25 输入
一个整数,如果为 0,则输入结束:0
除 0
外不输入任何数字
我的代码目前满足问题的要求,但我想涵盖我的所有基础。有了非常基本的 Java 知识,有没有办法在我的 while 语句中检查 nextInt
以查看是否:
>
数字序列不以0结尾。在我的测试中,程序似乎停止了(请注意我的同时语句中的调试输出)。我猜没有简单的方法来做到这一点,因此我们将使用0作为哨兵,但我想我会问。
如果只按了回车键。当我在NetBeans中这样做时,提示会移动到下一行,我希望包含一条消息,通知用户没有输入任何内容,并输入一个整数。
我的代码:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package positivenegative;
/**
*
* @author
*/
import java.util.Scanner;
public class PositiveNegative {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Scanner input = new Scanner(System.in);
// Welcome message
System.out.println("Welcome to the Number Averagererer.");
// Yes I'm aware "Averagererer" isn't a word
System.out.println("Be sure to enter a 0 at the end");
System.out.println("or the program will not work.");
System.out.print("Enter an integer, the input ends if it is 0: ");
// Initialize variables
int number, totalPositive=0, totalNegative=0, counter=0;
double average=0;
// Process the entered variables and sort/calculate them
while ((number = input.nextInt()) != 0){ // Continues if number isn't 0
System.out.println(number); //debugging to see what the nextInt is doing
// Adds to positive
if (number > 0){
totalPositive++;
counter++;
average = (average + number);
}
// Adds to negative
else{
System.out.println(number);
totalNegative++;
counter++;
average = (average + number);
}
}
// Output message if the user only enters "0"
if (counter == 0){
System.out.println("No numbers were entered except 0");
}
// Output message with calculated data from input
else{
double total = average;
average = (average / counter);
System.out.println("The number of positives is: " + totalPositive);
System.out.println("The number of negatives is: " + totalNegative);
System.out.println("The total is: " + total);
System.out.println("The average is: " + average);
}
}
}
类似这样的事情应该会起作用:
package positivenegative;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
public class PositiveNegative
{
public static void main(final String[] args)
{
// Welcome message
System.out.println("Welcome to the Number Averagererer.");
// Yes I'm aware "Averagererer" isn't a word
System.out.println("Be sure to enter a 0 at the end");
System.out.println("or the program will not work.");
System.out.print("Enter an integer, the input ends if it is 0: ");
// Initialize variables
int number = -1;
int totalPositive = 0;
int totalNegative = 0;
int counter = 0;
double average = 0;
String line = "";
while (line.isEmpty())
{
line = readLine();
if (line.isEmpty())
{
System.out.println("Line is empty. Enter number!");
}
}
try (final Scanner input = new Scanner(line))
{
// Process the entered line and sort/calculate them
while (input.hasNextInt())
{
number = input.nextInt();
if (number == 0)
{
// stop if number is 0
break;
}
System.out.println("number: " + number);// TODO: remove
// Adds to positive
if (number > 0)
{
totalPositive++;
}
// Adds to negative
else
{
totalNegative++;
}
counter++;
average = (average + number);
}
// Output message if the user only enters "0"
if (counter == 0)
{
System.out.println("No numbers were entered except 0");
}
// Output message with calculated data from input
else
{
final double total = average;
average = (average / counter);
System.out.println("The number of positives is: " + totalPositive);
System.out.println("The number of negatives is: " + totalNegative);
System.out.println("The total is: " + total);
System.out.println("The average is: " + average);
}
}
}
private static String readLine()
{
try
{
final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
final String s = br.readLine();
return s;
} catch (final IOException e)
{
e.printStackTrace();
return "";
}
}
}
对于您的扫描仪,您可以使用< code>input.hasNextInt()来测试是否有更多的数字,但是它会一直阻塞,直到有更多的数字。更多关于封锁的细节可以在这里找到。
问题内容: 说我有一个包含以下内容的模块: 我想为下半部分编写一个单元测试(我想实现100%的覆盖率)。我发现执行导入/设置机制的内置的 runpy 模块,但无法弄清楚如何模拟或检查 main() 函数是否被调用。 到目前为止,这是我尝试过的: 问题答案: 我将选择另一种替代方法,将其从覆盖率报告中排除,当然,只有在测试中已经具有main()函数的测试用例的情况下,您才能这样做。 至于为什么我选择
我正在为我的网站创建一个打印页面:http://vivule.ee/0/print 我希望在页面加载后启动。我尝试过不同的方法,但都不成功。我知道这是可能的,因为我可以监听完成的Ajax调用,但在Angular中是如何实现的?
我正在尝试构建一个php国际象棋应用程序,并将其包装在容器中。起初,我使用了旧的docker配置,但它不起作用,所以我在上面添加了一些内容(比如将config apache文件复制到容器中等等)。重点是-I copy放入只包含一行代码的容器中。但是在运行容器之后,它显示第5行有错误。当我在运行之前查看文件的内容时,它显示它只包含1行,所以我感到困惑。在回购(下面的链接)中,我有这个文件。 这是我运
问题内容: 我想检测何时文本框的内容已更改。我可以使用keyup方法,但是它也可以检测不会产生字母的击键,例如箭头键。我想到了使用keyup事件执行此操作的两种方法: 仔细检查所按键的ASCII码是否为字母\退格\删除 使用闭包来记住按键之前文本框中的文本,并检查是否已更改。 两者看起来都很麻烦。 问题答案: 开始观察“输入”事件而不是“改变”事件。 …很干净,但可以扩展到:
本文向大家介绍如果做一个杯子的检测,你如何测试相关面试题,主要包含被问及如果做一个杯子的检测,你如何测试时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 功能 (1)水倒水杯容量的一半 (2)水倒规定的安全线 (4)水杯容量刻度与其他水杯一致 (5)盖子拧紧水倒不出来 (6)烫手验证 性能 (1)使用最大次数或时间 (2)掉地上不易损坏 (3)盖子拧到什么程度水倒不出来 (4)保温时间长 (
问题内容: 是否有一个TSQL脚本可以让我看到约束的内容。我发现了一个有关Oracle的问题,但我需要一个TSQL脚本。 如何在Oracle上查看检查约束的内容 我知道sys.check_constraints,但是对于所有对象,“定义”都返回null。 问题答案: 其他方式 用于检查约束 对于默认约束 还有另一种方式