Java 有什么更有效的方法可以做到这一点? 公共类日历 { 公共静态无效打印月(整数天,整数开始天) { System.out.println(“Su-Mo-Tu-We-Th-Fr-Sa”); 对于(int j=0;开始日期>=j;j++) { 如果(j==0) 系统输出打印(“”); 其他的 系统输出打印(“”); } 对于(int i=1;numDays>=i;i++) { 如果(i
这是一个简短的,在我看来更可读的形式(为了可读性而忽略尾随空格):Java 有什么更有效的方法可以做到这一点? 公共类日历 { 公共静态无效打印月(整数天,整数开始天) { System.out.println(“Su-Mo-Tu-We-Th-Fr-Sa”); 对于(int j=0;开始日期>=j;j++) { 如果(j==0) 系统输出打印(“”); 其他的 系统输出打印(“”); } 对于(int i=1;numDays>=i;i++) { 如果(i,java,Java,这是一个简短的,在我看来更可读的形式(为了可读性而忽略尾随空格): 公共静态无效打印月(int numDays,int startDay){ System.out.println(“So Mo Di Mi Do Fr Sa”); int列=0; 对于(int day=1-startDay;day 0-String.format(“%2d”,day):”); 如果(++列%7==0)System.out.println(); } System.out.println(); } 可读性建议:使用j其
公共静态无效打印月(int numDays,int startDay){
System.out.println(“So Mo Di Mi Do Fr Sa”);
int列=0;
对于(int day=1-startDay;day 0-String.format(“%2d”,day):”);
如果(++列%7==0)System.out.println();
}
System.out.println();
}
可读性建议:使用j其中有一个错误:printMonth(28,0);无法按预期工作!因为您需要“更高效”顺便说一句,请告诉我们为什么你认为这是低效的。哦,@isnot2bad,你是对的。让我试着去解决这个问题。而Tichodroma,我只是觉得这是低效的,因为我是编程新手,我觉得这似乎是被迫的。这个问题似乎离题了,因为它是关于代码审查的
public class calendar
{
public static void printMonth(int numDays, int startDays)
{
System.out.println("Su Mo Tu We Th Fr Sa");
for(int j=0; startDays >= j; j++)
{
if (j==0)
System.out.print(" ");
else
System.out.print(" ");
}
for (int i=1; numDays >= i; i++)
{
if (i<=7-startDays)
System.out.print(i + " ");
else if (i<10)
System.out.print(" " + i + " ");
else
System.out.print(i + " ");
if ((i == 7-startDays) || (i % 7+(startDays-7) == 0))
System.out.print("\n");
}
}
public static void main(String args[])
{
printMonth(28,5);
}
}
public static void printMonth(int numDays, int startDay) {
System.out.println("So Mo Di Mi Do Fr Sa");
int column = 0;
for(int day = 1 - startDay; day <= numDays; day++) {
System.out.print(day > 0 ? String.format("%2d ", day) : " ");
if (++column % 7 == 0) System.out.println();
}
System.out.println();
}