gpt4 book ai didi

java - 使复活节计算器代码更高效的可能方法?

转载 作者:行者123 更新时间:2023-12-02 01:17:10 24 4
gpt4 key购买 nike

这是我的复活节计算器的代码。工作正常,想知道是否有一种方法可以提高效率(尤其是月份选择部分)。 if 语句非常长,想知道我是否可以使用数组来选择月份。对于将来的引用,这样的 if 语句将非常耗时,感谢您的反馈。

import java.util.*;
import java.lang.Math;

class Main {
public static void main(String[] args) {
Scanner userInput = new Scanner(System.in);

System.out.println("\nWelcome to the Easter Calculator. Please enter the current year below.");
int y = userInput.nextInt();

int p = y/100;

int q = y - (19*(y/19));

int r = (p-17)/25;

int s = p - (p/4) - ((p-r)/3) + (19*q) + 15;

s = s - (30*(s/30));

s = s - ((s/28)*1-((s/28)*(29/(s+1))*((21-q)/11)));

int t = y + (y/4) + s + 2 - p + (p/4);

t = t - (7*(t/7));

int u = s - t;

int m = 3 + ((u+40)/44);

int d = u + 28 - (31*(m/4));

String month;

if(m == 1){
month = "January";
}
else if(m == 2){
month = "February";
}
else if(m == 3){
month = "March";
}
else if(m == 4){
month = "April";
}
else if(m == 5){
month = "May";
}
else if(m == 6){
month = "June";
}
else if(m == 7){
month = "July";
}
else if(m == 8){
month = "August";
}
else if(m == 9){
month = "September";
}
else if(m == 10){
month = "October";
}
else if(m == 11){
month = "November";
}
else{
month = "December";
}

System.out.println("\nEaster will be on "+month+" "+d+", "+y+".");

}
}

最佳答案

可能用最少的代码行进行最快的解码是通过字符串数组进行解码,我们将其称为 monthNames,其中包含所有月份的名称。它的长度为 12,并且由于数组索引是从 0 开始的,因此您必须获取字符串,例如对于第 1 个月,如下所示:String Month = MonthNames[m-1];

关于java - 使复活节计算器代码更高效的可能方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58366992/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com