簡體   English   中英

Java 程序中的錯誤輸出

[英]Incorrect output in Java program

這是問題的描述,這是我得到的代碼:

PP 10.1 設計並實現一個程序,該程序從用戶處讀取一系列 10 個整數並打印它們的平均值。 將每個輸入值作為字符串讀取,然后嘗試使用 Integer.parseInt 方法將其轉換為整數。 如果此過程拋出 NumberFormatException(意味着輸入的數字不是有效數字),則打印相應的錯誤消息並再次提示輸入數字。 繼續讀取值,直到輸入 10 個有效整數。

這是我到目前為止的代碼:

import java.util.Scanner;

public class average 
{
private int number_values;
private int[] int_values;
private double average;

public average(int number_values)
    {
    this.number_values = number_values;
    }
public void values()
    {
    String value_string = null;
    int int_value = 0,a;
    Scanner number = null;
    a = 0;
    int_values = new int [number_values];

while (a < number_values)
    {
    try{
        number = new Scanner(System.in);
        System.out.print("Please enter a value:");

        value_string = number.nextLine();

        int_value = Integer.parseInt(value_string);

        int_values[a++] = int_value;
        } 
    catch (NumberFormatException ex)
            {
            System.out.print("This is an invalid input. Please renter another number:");
            continue;
            }
    }
}
public void printValues()
{
System.out.println("The values are:");

    for (int a = 0; a < number_values; a++)
    {
        System.out.println("Number - " + (a + 1) + " = " + int_values);

    }
}
public double get_average()
{
int sum = 0;

for(int a = 0; a < number_values; a++)
    {
    sum += int_values[a];
    }
average = (double) sum / number_values;
return (average);
}
public static void main(String[] args)
{
    average a = new average(10);
    a.values();
    a.printValues();
    System.out.println("Average = " + a.get_average());

}
}

當我輸入不正確的字符時,它會顯示“這是一個無效輸入。請租用另一個號碼:請輸入一個值:”

當我顯示平均值時,它會為所有值顯示 Number - 1 = [I@330bedb4"。

因此,當我輸入不正確的輸入時, println 字符串被弄亂了,並且值也被弄亂了。 我錯過了什么?

如果要輸出數組的特定項,請嘗試intValues[i] 否則,您將獲得數組對象本身的toString表示。

下次請在屏幕截圖中發布您的代碼;)

您沒有打印array的元素。 您正在直接打印array字符串表示形式。 錯誤是在您的printValues()方法中完成的。

要解決這個問題,您必須調用數組的一個元素。 在這種情況下,您要調用所有元素,因此必須使用loop 這里:

public void printValues()
{
System.out.println("The values are:");

    for (int a = 0; a < number_values; a++)
    {
        System.out.println("Number - " + (a + 1) + " = " + int_values[i]);

    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM