Java初学者租赁计划

Java初学者租赁计划,java,Java,我对编程很陌生。我正在为自行车租赁服务做一个计划。问题是在特定时间有两种关税(1和2) 关税1:00:00至07:00和17:00至24:00。(1$) 关税2:07:00至17:00。(2$) 我需要使用扫描仪,所以我写下了两个数字,它必须计算关税1和关税2的小时数,以及总成本。问题是,我不知道如何编写程序,所以它会检测一个或另一个费率中的小时数 程序必须按以下方式运行: 输入1 输入2 计算Tarif 1和2中的小时数,并给出总数 给出总价 下面是代码: import java.util.S

我对编程很陌生。我正在为自行车租赁服务做一个计划。问题是在特定时间有两种关税(1和2)

关税1:00:00至07:00和17:00至24:00。(1$) 关税2:07:00至17:00。(2$) 我需要使用扫描仪,所以我写下了两个数字,它必须计算关税1和关税2的小时数,以及总成本。问题是,我不知道如何编写程序,所以它会检测一个或另一个费率中的小时数

程序必须按以下方式运行:

  • 输入1
  • 输入2
  • 计算Tarif 1和2中的小时数,并给出总数
  • 给出总价
  • 下面是代码:

    import java.util.Scanner;
    
    public class Bike {
    
    public static void main(String[] args) {
    
        Scanner clavier = new Scanner(System.in);
        System.out.print("Give the starting hour : ");
        int start = clavier.nextInt();
        System.out.print("Give the ending hour : ");
        int finish = clavier.nextInt();
    
        if (start < 0 || start > 24) { 
        System.out.println("Hours must be within 0 and 24 !");
        }
        if (start == finish) {
        System.out.println("Strange, you didn't take it long enough !");
        }
        if (start >= 24 || start > finish) {
        System.out.println("Strange, the starting hour is after the end ...");
        }
        int total = finish - start;
        if (total > 0) {
        System.out.println("You have rented the bike for " + total + " hours.");
        }
    //This is where it becomes complicated.
    
        if ((start >= 0 && start < 7)||(start >= 17 && start <= 23)) {
            System.out.println("Amount of hours in Tariff 1 is : " + ((7 - start) +(finish - 17)));
        } else {
            System.out.println("Amount of hours in Tariff 2 is : "
            System.out.print("Total amount to pay is : ");
            System.out.println(" dollars.");
            {
    
            }
    
    import java.util.Scanner;
    公共级自行车{
    公共静态void main(字符串[]args){
    扫描仪键盘=新扫描仪(System.in);
    System.out.print(“给出开始时间:”);
    int start=clavier.nextInt();
    System.out.print(“给出结束时间:”);
    int finish=clavier.nextInt();
    如果(开始<0 | |开始>24){
    System.out.println(“小时必须在0到24之间!”);
    }
    如果(开始==完成){
    System.out.println(“奇怪,你花的时间不够长!”;
    }
    如果(开始>=24 | |开始>完成){
    System.out.println(“奇怪,开始时间在结束之后…”);
    }
    int total=完成-开始;
    如果(总数>0){
    System.out.println(“您租用自行车的时间为“+总时间+”小时”);
    }
    //这就是问题变得复杂的地方。
    
    如果((开始>=0&&start<7)||(start>=17&&start好的,你是编程新手,所以我会尽量保持简单。这里的问题不是语法或java中的一些秘密,只是缺少逻辑。我可以从你写的东西中看出,你要么在高中刚刚开始编程,要么刚刚开始学习编码

    所以我会尽量保持简单,不要给你太多提示

    不能只在else中使用tariff 2。我建议创建2个Int,tariffOne和tariffTwo(或任何您喜欢的名称),使它们=0。使用一些if语句计算它们。然后,当您有值时,在System.out中使用它们

    这很好,因为您可以简单地向int添加任何您想要的内容,并且您将始终拥有它们的值


    这个问题被否决的原因是因为你已经有了所有的工具来回答这个问题,而你只是没有掌握所需的逻辑,这样做通常不是很好的做法,因为它看起来很懒,即使你真的很努力。

    看起来你问过它在哪里被否决和关闭了。你为什么要这样做这次会更受欢迎吗?我编辑过,就在之前,它被关闭了。它不完全一样,但仍然“我不知道如何编写程序”抱歉,这不是一个问题,也不在本主题中考虑。请参阅“欢迎使用”帮助页。您也需要检查完成的位置,完成的位置是否在第一个tarrif或第二个tarrif的边界之间。不要认为这是一个编码问题,它需要逻辑,而不是语法。我认为如果您认为正确,您可以因为这个程序不需要任何特定于java的库,所以请关注逻辑并使用finish time变量。问题是我已经尝试过了。但我仍然不知道如何正确执行。谢谢你的回答!我会尝试的。