繁体   English   中英

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

[英]How to use Java to write a program that read a sequence of integer inputs?

使用 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);
    }
}        

}

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

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


如何编写将读取(控制台)输入的 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 文档
  2. 当您有疑问时使用谷歌搜索(编程中的问题就像规则 34;有人遇到了同样的问题,并在网上某处发布了答案)。
  3. 实验。 熟能生巧,因为它可以让您亲身体验和理解问题及其解决方案。
  4. 问。 即使你在任何地方都找不到答案,和/或在你自己的实验中找不到解决方案,编程社区,特别是我们在这里(我认为),通常都是思想开放的好人,他们是愿意帮助您找到疑虑的答案 只是不要试图将您的工作推给我们,或者期待一个您可以复制并粘贴到您的项目/家庭作业的解决方案

干杯,祝你好运!

你想用int counter = counter % 2什么? 这实质上是告诉程序,“创建一个整数,它等于当前值除以 2 的余数”。 这是不可能的。 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;
    }
}

这将允许用户输入最多六个数字并可以选择退出。 由于在此示例中numbers是一个ArrayList ,因此可以使用get()函数get()检索项目。 例如, System.out.println(numbers.get(0))将显示添加到numbers的第一个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++;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM