我一直致力于编写和调用一些方法,一个显示当前日期,另一个显示星号金字塔。我已经到了代码将编译的程度,但我遇到了另一个问题。当我尝试在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);
}
}
答案 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,当然,找不到之一。