所以我對這個網站很新,但你們是我最後的希望。這裏的目標是用戶將輸入華氏10度的溫度(輸入時輸入-999來停止),然後程序將把這些溫度改變爲攝氏溫度。用戶也需要鍵入他們的位置。我能夠在位置輸入,但我打後「回車」我得到:我的程序不會超過我的第幾行代碼
異常線程「main」 java.util.InputMismatchException
在java.util.Scanner.throwFor(來源不明)
在java.util.Scanner.next(未知來源)
在java.util.Scanner.nextInt(未知來源)
在java.util.Scanner.nextInt(未知來源)
在Prog1.main(PROG1 .java:20)`
這裏是我的代碼:
import java.util.Scanner;
public class Prog1
{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
//asks the user for the location
System.out.print("Enter Location: ");
int place = in.nextInt();
System.out.print(place);
double[] temp = new double[10];
int num = 0;
//prime the loop
System.out.print("Enter temperature: ");
int input = in.nextInt();
//get up to 10 temperatures and store in array "temp"
while (input >= -998 && num < 10) {
temp[num] = input;
num++;
System.out.print("Enter temperature: ");
input = in.nextInt();
}
//print report
System.out.println();
System.out.printf("%5s %5\n", "Fahrenheit", "Celcius");
for (int x = 0; x < num; x++) {
System.out.printf("%5d %5s\n", temp[x], celsius(temp[x]));
}
System.out.printf("\nHigh: %6.2f", max(temp, num));
System.out.printf("\nLow: %6.2f", min(temp, num));
System.out.printf("\nAverage: %6.2f", average(temp, num));
}
/**
* Method to convert farenheit to celsius
* @param double farenheit temperature
* @return double celsius temperature
*/
public static double celsius(double input) {
double celcius = 5.0/9.0 * (input - 32);
return celcius;
}
/**
* Method to calculate average, min and max temperatures
*
* @param double farenheit temperature
* @return average, min and max temperatures
*/
public static double average(double[] temp, int num) {
double sum = 0;
for (int x = 0; x < num; x++) {
sum += temp [x];
}
return (double) sum/num;
}
public static double max(double[] temp , int num){
double max = temp[0];
for (double x : temp) {
if (max > num) {
max = num;
}
return num;
}
return max;
}
public static double min(double[] temp, int num) {
double min = temp[0];
for (double x : temp) {
if (min < num) {
min = num;
}
return min;
}
return num;
}
}
謝謝你,爲我的固定的第一部分!但是當我去要求用戶進入他們的溫度時,我再次得到這個。異常線程 「main」 java.util.InputMismatchException \t在java.util.Scanner.throwFor(來源不明) \t在java.util.Scanner.next(來源不明) \t在java.util.Scanner中。nextInt(Unknown Source) \t at java.util.Scanner.nextInt(Unknown Source) \t at Prog1.main(Prog1.java:27) –
同樣,這就是你之前得到的同一個異常。您的代碼需要一個整數,並且用戶必須輸入除整數以外的內容。仔細檢查,只有一個整數正在輸入 – Spencer
你正在輸入雙倍值,我認爲。嘗試in.nextDouble()並將輸入類型設置爲double。 – Samurai