所以我对这个网站很新,但你们是我最后的希望。这里的目标是用户将输入华氏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