Java 需要在不使用数组的情况下获取最高值和最低值

Java 需要在不使用数组的情况下获取最高值和最低值,java,max,min,Java,Max,Min,我正在做一项作业,每周7天,每一天作为变量,创建两个函数。一个用于查找7天的平均温度,另一个用于查找7天中最冷和最热的温度。我们不允许使用数组。我知道这是很多无用的代码,但这是作业要求的 我的问题是我能找出最小值和最大值。有什么建议吗 import java.util.Scanner; public class Temperature { public static void getAverage(double day1, double day2, double day3, double da

我正在做一项作业,每周7天,每一天作为变量,创建两个函数。一个用于查找7天的平均温度,另一个用于查找7天中最冷和最热的温度。我们不允许使用数组。我知道这是很多无用的代码,但这是作业要求的

我的问题是我能找出最小值和最大值。有什么建议吗

import java.util.Scanner;

public class Temperature {
public static void getAverage(double day1, double day2, double day3, double day4, 
                              double day5, double day6, double day7){
double average = (day1 + day2 + day3 + day4 + day5 + day6 + day7)/7;

System.out.printf("The average is: %.2f\n", average);
}
public static void getHotAndCold( double day1, double day2, double day3, double day4, 
                               double day5, double day6, double day7){

}

public static void main(String [] args){
Scanner s = new Scanner(System.in);
double day1, day2, day3, day4, day5, day6, day7;

System.out.println("Enter the temperatures for each day of the week starting with,     Monday");
day1 = s.nextDouble();

System.out.println("Tuesday");
day2 = s.nextDouble();

System.out.println("Wednesday");
day3 = s.nextDouble();

System.out.println("Thursday");
day4 = s.nextDouble();

System.out.println("Friday");
day5 = s.nextDouble();

System.out.println("Saturday");
day6 = s.nextDouble();

System.out.println("Sunday");
day7 = s.nextDouble();

getAverage(day1, day2, day3, day4, day5, day6, day7);
 }
}

您可以执行以下操作:

public static void getHotAndCold( double day1, double day2, double day3, double day4, 
                               double day5, double day6, double day7)
{
    double min = day1;
    double max = day1;

    if (day2 < min)
    {
        min = day2;
    }
    if (day2 > max)
    {
       max = day2;
    }

    // and so on.
}
public static void gethot和cold(双日1、双日2、双日3、双日4、,
双日5、双日6、双日7)
{
双分钟=第1天;
双倍最大值=第1天;
如果(第2天<分钟)
{
最小值=第2天;
}
如果(第2天>最大值)
{
最大值=第2天;
}
//等等。
}

您可以执行以下操作:

public static void getHotAndCold( double day1, double day2, double day3, double day4, 
                               double day5, double day6, double day7)
{
    double min = day1;
    double max = day1;

    if (day2 < min)
    {
        min = day2;
    }
    if (day2 > max)
    {
       max = day2;
    }

    // and so on.
}
public static void gethot和cold(双日1、双日2、双日3、双日4、,
双日5、双日6、双日7)
{
双分钟=第1天;
双倍最大值=第1天;
如果(第2天<分钟)
{
最小值=第2天;
}
如果(第2天>最大值)
{
最大值=第2天;
}
//等等。
}

您可以这样做。使用
Math.max
获得一对的最大值,然后继续这样做直到第七天。最后一次与的比较将为全局变量提供值

double max;
double min;

public static void getMaxAndMin(
                   double day1, double day2, double day3, double day4, 
                                double day5, double day6, double day7){

    max = Math.max(day1, day2);
    max = Math.max(max, day3);
    max = Math.max(max, day4);
    max = Math.max(max, day5);
    max = Math.max(max, day6);
    max = Math.max(max, day7);

    min = Math.min(day1, day2);
    min = Math.min(min, day3);
    min = Math.min(min, day4);
    min = Math.min(min, day5);
    min = Math.min(min, day6);
    min = Math.min(min, day7);

}

你可以这样做。使用
Math.max
获得一对的最大值,然后继续这样做直到第七天。最后一次与的比较将为全局变量提供值

double max;
double min;

public static void getMaxAndMin(
                   double day1, double day2, double day3, double day4, 
                                double day5, double day6, double day7){

    max = Math.max(day1, day2);
    max = Math.max(max, day3);
    max = Math.max(max, day4);
    max = Math.max(max, day5);
    max = Math.max(max, day6);
    max = Math.max(max, day7);

    min = Math.min(day1, day2);
    min = Math.min(min, day3);
    min = Math.min(min, day4);
    min = Math.min(min, day5);
    min = Math.min(min, day6);
    min = Math.min(min, day7);

}

如果你真的想循环(或只是恶意):


如果你真的想循环(或只是恶意):


其他答案的变体

double max, min;

public static void getMaxMin(double day1, double day2, double day3, double day4,
                             double day5, double day6, double day7){

    max = Math.max(day1, Math.max(day2, Math.max(day3, Math.max(day4,
          Math.max(day5, Math.max(day6, day7))))));

    min = Math.min(day1, Math.min(day2, Math.min(day3, Math.min(day4,
          Math.min(day5, Math.min(day6, day7))))));

}其他答案的变体

double max, min;

public static void getMaxMin(double day1, double day2, double day3, double day4,
                             double day5, double day6, double day7){

    max = Math.max(day1, Math.max(day2, Math.max(day3, Math.max(day4,
          Math.max(day5, Math.max(day6, day7))))));

    min = Math.min(day1, Math.min(day2, Math.min(day3, Math.min(day4,
          Math.min(day5, Math.min(day6, day7))))));


}

谢谢。。太重复了,但我认为这是唯一的办法。谢谢。。重复性很强,但我认为这是唯一的方法。首先,在几天内使用枚举而不是神奇的字符串。为天数指定int值。是否禁止您创建其他函数?我不知道为什么我将其设置为双精度、良好捕获,并且我还不知道枚举是什么,所以我假设我们不使用它。是的,只有2个函数。你必须说出你得到输入的日期吗?你会使用循环吗?我会使用循环,但我不确定如何实现它们。首先,使用枚举而不是神奇的字符串几天。为天数指定int值。是否禁止您创建其他函数?我不知道为什么我将其设置为双精度、良好捕获,并且我还不知道枚举是什么,所以我假设我们不使用它。是的,只有2个函数。你必须说出你得到输入的日期吗?你可以使用循环吗?我可以使用循环,但不确定如何实现。不需要多个最大值,你可以使用一个来跟踪运行值。我刚刚注意到。谢谢我修好了,这也是对的。既然你先回答了数学课的问题,我就给你支票。谢谢不需要多个最大值,您可以使用一个来跟踪运行值。我刚刚注意到。谢谢我修好了,这也是对的。既然你先回答了数学课的问题,我就给你支票。谢谢我用这种方式。谢谢大家!谢谢你的帮助!很酷,很高兴它有用!顺便说一句,你能投票选出对你有帮助的答案吗。这样,最有用的答案会首先出现在其他观众面前(我们的工作会得到回报)。谢谢大家!谢谢你的帮助!很酷,很高兴它有用!顺便说一句,你能投票选出对你有帮助的答案吗。这样,最有帮助的答案将首先出现在其他观众面前(我们的工作会得到回报)。