选择不包含主要类型

时间:2013-08-23 05:55:59

标签: java methods

我一直致力于编写和调用一些方法,一个显示当前日期,另一个显示星号金字塔。我已经到了代码将编译的程度,但我遇到了另一个问题。当我尝试在JGrasp中运行时,我收到错误:以下文件缺少类或内部类文件:(文件名)。不建议在纠正之前继续进行。。在互联网上没有找到任何关于这个的东西,我再次尝试但是在Eclipse中。我这次收到的错误信息是:选择不包含主要类型

如果有人能够概述我的代码并告诉我他们是否看到问题,我将非常感激。一个解释也很棒,因为我正在努力学习并更好地成为一名程序员。谢谢!

import java.util.Calendar;

public class prcMeth {

    public static void showCurrentDate() {
        Calendar cal = Calendar.getInstance();
        int month = cal.get(Calendar.MONTH);
        int day = cal.get(Calendar.DATE);
        int year = cal.get(Calendar.YEAR);
        System.out.println(year + "-" + month + "-" + day + " ");
    }

    public static boolean printPyramid(int n) {
        int number = n;
        if (number <= 0 || number > 10) {
            System.out.println("Your parameter is invalid; you input n = " + n);
            return false;
        }
        for (int row = 1; row <= number; row++) {
            for (int space = number; space > row; space--) {
                System.out.print(" ");
            }
            for (int star = 1; star <= row; star++) {
                System.out.print("*");
                System.out.println();
            }
        }
        return true;
    }

    public static void main(String[] args) {

        System.out.println("Hello, world!");

        // Calling first function
        showCurrentDate();

        // Calling second function
        System.out.println("n=0");
        printPyramid(0);

        System.out.println("n=1");
        printPyramid(1);

        System.out.println("n=5");
        printPyramid(5);

        System.out.println("n=10");
        printPyramid(10);

        System.out.println("n=11");
        printPyramid(11);
    }
}

3 个答案:

答案 0 :(得分:0)

我认为这个程序没有任何问题,因为当我在记事本中复制这个程序并尝试运行它而不是它成功运行。所以这段代码没问题。

唯一合乎逻辑的问题是

for (int star = 1; star <= row; star++) {

           System.out.print("*");

            System.out.println();

       }

应该是

for (int row = 1; row <= number; row ++){

       for (int space = number; space > row; space--){

           System.out.print(" ");

        }

        for (int star = 1; star <= row; star++) {

           System.out.print("*");

       }
       System.out.println();

  }

以适当的格式打印金字塔。使用当前代码全部星号在新行中打印,因为您的System.out.println()在内部循环内。

答案 1 :(得分:0)

我测试过你的代码工作正常。在eclipse中,如果你有任何问题来运行代码,那么它可能是eclipse无法使主方法更好。做一件事 右键单击代码并选择run as Run configuration,在那里你可以提供主类和所有其他与JVM相关的条目

答案 2 :(得分:0)

如果您拥有的窗格不是实际的类,那么您在Eclipse中很容易发生问题。例如,即使您在编辑器中打开了类,并且它是唯一打开的类,如果您(例如)重点关注控制台窗格,Eclipse将在控制台中查找main,当然,找不到之一。