当前位置: 首页 > 知识库问答 >
问题:

我的程序不会超过我的前几行代码

扶誉
2023-03-14

所以我对这个网站很陌生,但你们是我最后的希望。这里的目标是,用户将输入10华氏温度(输入-999停止输入),然后程序将这些温度改为摄氏。此外,用户还需要键入他们的位置。我可以输入位置,但在我点击“Enter”后,我得到:


在java.util.scanner.throwfor(未知源)
在java.util.scanner.next(未知源)
在java.util.scanner.nextint(未知源)
在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;
    }
}

共有1个答案

翟誉
2023-03-14

您将得到一个InputMismatchException,这意味着用户提交给您的任何内容都是不同类型的,而您已经为其编写了不同的程序。

您要求用户输入他们的位置,然后调用in.nextint()。如果标准输入中的下一个令牌不是整数,nextInt()将抛出异常。您必须为抛出异常的位置输入整数以外的内容。如果要输入基于文本的位置(如字符串),请尝试in.nextline()

 类似资料:
  • 给定以下使用多线程的Java示例: 它产生: 但应用程序永远不会终止。 我是不是该加入这条线什么的?

  • 所以我正在为PHP建立一个网站 因此,基本上,页面加载并检查用户是否已登录,如果已登录,则加载成员区域。如果没有,它会检查用户是否正在尝试登录,如果没有,它会显示登录表单。我的问题是,每次我或其他人尝试登录时,页面都会重新加载,但不会将他们带到“成员”区域,而是将他们带回到登录表单。。。另外,在文档的顶部有一行:

  • 这是错误: 运行: Mon Mar25 05:22:00SGT 2019警告:不建议在没有服务器身份验证的情况下建立SSL连接。根据MySQL5.5.45 , 5.6.26和5.7.6要求,如果没有设置显式选项,默认情况下必须建立SSL连接。为了符合不使用SSL的现有应用程序的要求,验证服务器证书属性设置为'false'。您需要通过设置useSSL=false来显式禁用SSL,或者设置useSSL

  • 我有两个独立的文件,格式1。cs和程序。反恐精英。我想要一个节目。cs在我选择表单中的文件路径后开始运行,方法是按下按钮1并选择文件目标,但它仅在我关闭表单后开始运行。我无法运行我的程序。cs,而窗体仍处于打开状态,但是我希望显示窗体上从程序中获得的信息。反恐精英。。以下是我的表单代码的外观: 这是我的主要课程。反恐精英: 任何帮助将不胜感激!

  • 我正在tomcat 7 VPS服务器上运行2个java(7)servlet。一个servlet返回json响应,另一个servlet返回4行纯html代码。 如果我只运行json响应servlet,我每天处理1200万请求(每秒约140个请求)没有问题。 目前,我在json servlet上只运行了一半的流量(每秒约70个请求)。 如果我添加返回html的servlet,当这个servlet的请求

  • 我最近在我的Mac上下载了JDK7U25(我运行的是OSX10.7.5)用于我的java developers类。在http://www.Oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html从Oracle下载了.dmg文件并成功安装了软件包之后,我尝试在Library>Java>JavaVirtualMac