java - 提供多个数据值后,可以编写什么代码来比较数据并确定最高/最低值? java

标签 java

我在这个网站上寻找与查找程序中最高/最低数据值有关的答案,但我发现的只是与数组有关的代码。我的代码中没有数组,因此我假设查找最高值或最低值的技术将以不同的方式执行。

如果您查看我的代码,您可以在输出的底部看到有两行内容:

The highest performance score was: 0
The lowest performance score was: 0

我根本不知道如何使用代码来输出最高性能分数或最低性能分数。我想要比较和显示正在分析的两台计算机的两个性能分数,而不是那些 0。再次强调,我希望输出中的不是 0,而是:

The highest performance score was: 15400.000000000002
The lowest performance score was: 13000.0

那么我该如何执行呢?感谢所有帮助。

输出:

How many computers are being processed? 2

Computer Hardware Graphics Quality Recommendation Tool

Enter the clock speed (in Megahertz) of your graphics card: 1000
Enter the clock speed (in Megahertz) of your processor: 2000
Enter the number of cores that your processor has: 4
Monitor resolution menu:
1. 1280 x 720
2. 1920 x 1080
3. 2560 x 1440
4. 3840 x 2160
Please select one of the choices above: 1

GPU Clock Speed: 1000 MHz
CPU Clock Speed: 2000 MHz
Number of cores: 4
Monitor Resolution: 1280 x 720
Performance Score: 13000.0
Recommended Graphics Quality: Medium

The highest performance score was: 0
The lowest performance score was: 0

Computer Hardware Graphics Quality Recommendation Tool

Enter the clock speed (in Megahertz) of your graphics card: 2000
Enter the clock speed (in Megahertz) of your processor: 3000
Enter the number of cores that your processor has: 6
Monitor resolution menu:
1. 1280 x 720
2. 1920 x 1080
3. 2560 x 1440
4. 3840 x 2160
Please select one of the choices above: 3

GPU Clock Speed: 2000 MHz
CPU Clock Speed: 3000 MHz
Number of cores: 6
Monitor Resolution: 2560 x 1440
Performance Score: 15400.000000000002
Recommended Graphics Quality: High

The highest performance score was: 0
The lowest performance score was: 0

我的代码:

/*
This program will help the user identify and further understand the capabilities of their computer's hardware.
When the program is run, the user will be asked to input facts and information about their computer's hardware.
Once the information about the user's computer hardware is processed by the program,
the user will see results that explain the capabilities and potential of their computer.
In this new edition of the program, the user will have the option to analyze multiple computers, rather than just one.
They will also be able to compare their computer's performance score at the end.
*/

import java.util.Scanner; //This allows the program to utilize the Scanner class to get the user's input.


public class Project2_Ben_Mayo
{
   public static void main(String[] args)
   {


   String title = "Computer Hardware Graphics Quality Recommendation Tool"; //Title string
   int numOfComputers = 0; //To hold the number of computers being tested
   int GPUspeed = 0; //To hold the user's GPU clock speed (in Megahurtz)
   int CPUspeed = 0; //To hold the user's CPU clock speed (in Megahurtz)
   int numCores = 0; //To hold the number of cores in the user's CPU
   int menuChoice = 0; //To hold the user's menu choice
   String monitorRes = ""; //To hold the user's monitor resoltion
   String quality = ""; //To hold the quality of performance while gaming
   double multiplier = 0.0; //To hold the multiplier value
   double performanceScore = 0.0; //To hold the performance score value
   int highestScore = 0;
   int lowestScore = 0;

   Scanner sc = new Scanner(System.in); //This is the scanner object


   System.out.print("\n" + "How many computers are being processed? "); //ask the user to enter the number of computers they would like to test
   numOfComputers = sc.nextInt();

   if (numOfComputers <= 0) { //If the number of computers is less than or equal to 0, this notifies the user that the number of computers must be greater than or equal to 1
   System.out.print("The number of computers being processed must be at least one.");
   }


   //Use for loop to ask the user to enter the information for each computer
   for(int computerNumber = 0; computerNumber < numOfComputers; computerNumber++) { //Begin for loop

   System.out.println("\n" + title); //Print the title

   System.out.print("\n" + "Enter the clock speed (in Megahertz) of your graphics card: "); //This is an indicator of how fast the user's graphics card is
   GPUspeed = sc.nextInt();

   while(GPUspeed < 800 || GPUspeed > 2000) { //While the user provides an invalid input, display an error message and have them re-enter their input
      System.out.print("Invalid input. Plase enter a valid GPU speed: "); //display an error message if the user gave invalid input
      GPUspeed = sc.nextInt(); //re-read in the user's input for the GPU speed
   }


   System.out.print("Enter the clock speed (in Megahertz) of your processor: "); //This is an indicator of how fast the user's processor is
   CPUspeed = sc.nextInt();

    while(CPUspeed < 1000 || CPUspeed > 5500) { //While the user provides an invalid input, display an error message and have them re-enter their input
      System.out.print("Invalid input. Plase enter a valid CPU speed: "); //display an error message if the user gave invalid input
      CPUspeed = sc.nextInt(); //re-read in the user's input for the CPU speed
   }


   System.out.print("Enter the number of cores that your processor has: "); //This is an indicator of how many cores the user's CPU contains
   numCores = sc.nextInt();

    while(numCores < 1 || numCores > 16) { //While the user provides an invalid input, display an error message and have them re-enter their input
      System.out.print("Invalid input. Plase enter a valid number of cores: "); //display an error message if the user gave invalid input
      numCores = sc.nextInt(); //re-read in the user's input for the number of cores
   }



   //Monitor resolution menu
   System.out.println("Monitor resolution menu:");
   System.out.println("1. 1280 x 720");
   System.out.println("2. 1920 x 1080");
   System.out.println("3. 2560 x 1440");
   System.out.println("4. 3840 x 2160");

   System.out.print("Please select one of the choices above: "); //Ask the user to choose the resolution of their monitor
   menuChoice = sc.nextInt();

   while(menuChoice < 1 || menuChoice > 4) { //While the user provides an invalid input, display an error message and have them re-enter their input
      System.out.print("Invalid selection. Plase pick a valid option from the menu: "); //display an error message if the user gave invalid input
      menuChoice = sc.nextInt(); //re-read in the user's input for the menu selection
   }


   //Assign the menu options to their values to enable the menu to funtion correctly
   if (menuChoice == 1) {        //If the user selects menu option number 1, "monitorRes" = "1280 x 720"
      monitorRes = "1280 x 720";
   }
   else if (menuChoice == 2) {   //If the user selects menu option number 2, "monitorRes" = "1920 x 1080"
      monitorRes = "1920 x 1080";
   }
   else if (menuChoice == 3) {   //If the user selects menu option number 3, "monitorRes" = "2560 x 1440"
      monitorRes = "2560 x 1440";
   }
   else if (menuChoice == 4) {   //If the user selects menu option number 4, "monitorRes" = "3840 x 2160"
      monitorRes = "3840 x 2160";
   }


   //This segment will determine what the mulitplier object will be
   if (menuChoice == 1) {
      multiplier = 1;
   }
   else if (menuChoice == 2) {
      multiplier = .75;
   }
   else if (menuChoice == 3) {
      multiplier = .55;
   }
   else if (menuChoice == 4) {
      multiplier = .35;
   }


   //Performance Score multiplier
   performanceScore = ((5 * GPUspeed) + (numCores * CPUspeed)) * multiplier;



   //Recommended graphics quality that the user's hardware can support.
   if (performanceScore >= (17000)) {       //If the performance score is greater than or equal to 17,000, the quality of the performance is ultra
      quality = "Ultra";
   }
   else if (performanceScore >= (15000)) {  //If the performance score is greater than or equal to 15,000, the quality of the performance is high
      quality = "High";
   }
   else if (performanceScore >= (13000)) {  //If the performance score is greater than or equal to 13,000, the quality of the performance is medium
      quality = "Medium";
   }
   else if (performanceScore >= (11000)) {  //If the performance score is greater than or equal to 11,000, the quality of the performance is low
      quality = "Low";
   }
   else if (performanceScore < (11000)) {   //If the performance score is less than 11,000, the quality of the performance is unplayable
      quality = "Unable to Play";
   }


   //Print the results
   System.out.println("\nGPU Clock Speed: " + GPUspeed + " MHz"); //User's GPU speed (in Megahurtz)
   System.out.println("CPU Clock Speed: " + CPUspeed + " MHz"); //User's CPU speed (in Megahurtz)
   System.out.println("Number of cores: " + numCores); //Number of cores that the user's CPU contains
   System.out.println("Monitor Resolution: " + monitorRes); //User's moniter resolution
   System.out.println("Performance Score: " + performanceScore); //The user's computer performance score
   System.out.println("Recommended Graphics Quality: " + quality); //Estimated quality of graphics during gameplay

   System.out.println("\n" + "The highest performance score was: " + highestScore);
   System.out.println("The lowest performance score was: " + lowestScore);

      } //End for loop
   } //End class
} //End main

最佳答案

如果您不想创建列表并将 PerformanceScore 值存储在其中,则可以在打印结果之前在 for 循环内添加逻辑,以便将您的最高和最低 PerformanceScore 存储在变量最高和最低性能分数中到目前为止已迭代:

if(performanceScore > highestScore) {
    highestScore = performanceScore;
}
if(lowestScore == 0 || performanceScore < lowestScore) {
    lowestScore = performanceScore;
}

关于java - 提供多个数据值后,可以编写什么代码来比较数据并确定最高/最低值? java ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60531658/

相关文章:

java - apache cxf 无法发送消息并读取超时

java - Eclipse 中的代码可以工作,但在 Android 上不起作用

java - Spring XML 导入依赖

java - Apache Commons compress - 分割 Zip 文件

Java:数据结构和通配符的泛型

Java:使用符合我的接口(interface)的外部类

java - Spring Boot 应用程序中的 Hazelcast 客户端测试

java - 在运行时设置属性文件内的值

java - 为什么我的 native C++ 代码在 Android 上的运行速度比 Java 慢得多?

java - 使用 JSoup 解析复杂表中的值