如何使用Java编写读取整数输入序列的程序?

时间:2015-10-29 00:52:18

标签: java helper

使用Java编写程序的最简单方法是读取输入并打印出最小和最大的数字。偶数和奇数输入的数量怎么样?

For循环是必需的,它需要允许用户退出循环。这是我到目前为止所得到的(可能是错误的):

import java.util.Scanner;

public class E62a
 {
   public static void main(String[] args)
   {
    Scanner in = new Scanner(System.in);
    System.out.println("Enter numbers");
    int number = in.nextInt();
    int number2 = in.nextInt();
    for(int counter = counter % 2; counter <= 6; counter++)
    {
        System.out.println(number);
        System.out.println(number2);
    }
}        

}

2 个答案:

答案 0 :(得分:1)

  

最简单的方法是什么(...)

在编程中,几乎没有“最简单的方法”来做任何需要多个命令的事情。 “简单”的含义取决于具体情况。

  

如何编写将读取(控制台)输入的Java程序?

你已经找到了办法:

Scanner in = new Scanner(System.in);
//...
in.nextLine(); //or nextInt(), or whatever else...

还有......

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//...
String input = br.readLine();

...这是我通常使用的。可能还有其他方法......

  

如何找到/打印出最小和最大的数字(两个数字之间)?

一个简单的IF-THEN-ELSE结构就行了。在Java中,这将是:

if (numA <= numB) { min = numA; max = numB; } else {min = numB; min = numA; }

您还可以使用Java(非常干净和方便)的内置方法:

min = Math.min(numA,numB); max = Math.max(numA,numB);

您已经知道如何打印... System.out.print().println()

  

偶数和奇数输入的数量是多少?

我不确定你的意思,但如果你的意思是多个输入(超过两个),你首先要决定用户如何输入输入;比如在一行中,用空格或逗号或其他类型的separator character分隔,或者作为多行,在这种情况下,您需要trigger string来告诉程序输入已经结束和处理应该继续/遵循。

对于单行+分隔符,您的程序将是干净且高度可维护的,因为输入的处理几乎完全与接口(控制台)分离,但您需要解析结果String将输入彼此分开。

如果是多行+触发器,您可以在键入时使用单个输入填充数组,但是控制台会变得非常混乱,并且与处理相关性更大。

最后但同样重要的是,学习编程语言的最佳方法是:

  1. 阅读官方文档。 Java 8 docs
  2. 当您有疑问时使用Google搜索(编程中的问题就像规则34;有人遇到了同样的问题,并在网上发布了答案)。
  3. 进行实验。实践是完美的,因为它可以让您亲身体验和理解问题及其解决方案。
  4. 问。即使你没有在任何地方找到答案,和/或无法在你自己的实验中找到解决方案,编程社区,特别是我们在这里(我认为),通常都是有开放思想的伟大人物,他们是愿意帮助您找到答案对您的怀疑;只是不要试图将你的工作推向我们,或者期望一个解决方案,你可以复制 - 并且 - 粘贴到你的项目/家庭作业。
  5. 欢呼,祝你好运!

答案 1 :(得分:0)

你想用int counter = counter % 2做什么?这基本上告诉程序,&#34;创建一个等于其当前值的余数除以2的整数。&#34;这是不可能的。 counter = counter % 2仅在先前已初始化counter时才有效。

您的for循环未向用户提供手动退出的方法。要允许用户手动退出循环,您需要编写它以接受循环内的用户输入并提供退出条件。以下是您如何做到这一点的一个例子:

Scanner in = new Scanner(System.in);
Integer input;
ArrayList<Integer> numbers = new ArrayList<>();

for (int i=0; i<=6; i++) {
    System.out.print("Enter a number or enter -1 to exit: ");
    input = in.nextInt();
    if (input != -1) {
        numbers.add(input);
    } else {
        break;
    }
}

这将允许用户输入最多六个数字并可以选择退出。由于此示例中的numbersArrayList,因此可以使用get()函数从中检索项目。例如,System.out.println(numbers.get(0))会显示添加到numbers的第一个数字。

确定最小和最大数字可以这样做:

int largest = -1;
int smallest = -1;
for (int i=0; i<numbers.size(); i++) {
    if (numbers.get(i) > largest) {
        largest = numbers.get(i);
    }
    if ((numbers.get(i) < smallest) || (smallest == -1)) {
        smallest = numbers.get(i);
    }
}

这部分代码将计算偶数和奇数输入的数量:

int evenNumbers = 0;
int oddNumbers = 0;
for (int i=0; i<numbers.size(); i++) {
    if ((numbers.get(i) % 2) == 0) {
        evenNumbers++;
    } else {
        oddNumbers++;
    }
}