簡體   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