繁体   English   中英

检查数组中的整数是否在范围内

[英]Check if integers within an array are within the range

基本上,我应该编写的程序是从客户那里获得12个月的能源使用量,然后输出总使用量,两个费率的价格(代码中包括公式),并说哪个费率更便宜。 但是,它还必须检查这12个月中每个月的输入是否在范围内(大于“ 0”且小于或等于“ 1000”)。 我已经找到了一种使用数组的简单方法(?),但是我不知道如何检查要扫描到该数组中的每个整数是否真正在0 <int <= 1000的范围内

如果整数小于0或大于1000,则程序必须输出“请输入有效金额”行,然后再次要求输入相同的整数,这样就不会存储错误的值(如果有意义)?

import java.util.Scanner;

public class EnergyConsumptionExample {

    public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);

        int total_usage;
        float t1_cost, t2_cost;
        final int MAX_USAGE = 1000, MIN_USAGE = 0;

        int[] energyCons = new int[12];

        for (int month = 0; month < energyCons.length; month++) {
            System.out.print("Please enter the monthly kWh usage for month ");
            System.out.print((month + 1) + ": ");
            energyCons[month] = scan.nextInt();
        }

        int totalCons = 0;
        for (int month = 0; month < energyCons.length; month++) {
            totalCons += energyCons[month];
        }

        System.out.println();
        System.out.println("Total usage for the year was " + totalCons + " kWh");

        t1_cost = (float) (totalCons * 0.1);
        t2_cost = (float) ((totalCons * 0.09) + 50);

        System.out.println("Using tariff one, the cost is: " + t1_cost);
        System.out.println("Using tariff two, the cost is: " + t2_cost);
        System.out.println();

        if (t1_cost > t2_cost) {
            System.out.println("Tariff two would be cheaper for this customer.");
        } else {
            System.out.println("Tariff one would be cheaper for this customer.");
        }

    }
}

将输入阅读循环更改为以下内容:

for (int month = 0; month < energyCons.length; month++) {
  System.out.print("Please enter the monthly kWh usage for month ");
  System.out.print((month + 1) + ": ");
  int inputValue = scan.nextInt();
  while (inputValue < 0 || inputValue > 1000) {
    System.out.println("Please enter a valid amount: ");
    inputValue = scan.nextInt();
  }
  energyCons[month] = inputValue;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM