Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
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 - Fatal编程技术网

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();
}