方法之前程序终止的原因

时间:2013-03-28 15:25:57

标签: java

试图了解我的程序过早终止的原因。运行加仑到升转换方法确定但停在那里。不运行“root”方法(其目的是计算数字1到100的平方根)。我认为这更像是格式化而不是语义问题。谢谢你的帮助。

package gallons.to.liters;  

public class converter {                    
public static void main(String args[]) {    
    double gallons;                          
    double liters;          

    gallons = 10;
    liters = gallons * 3.7854;

    System.out.println("The number of liters in " + gallons + " gallons is " + 
            liters);
    System.out.println();

}


public static void root(String args[]) {
    double counter;
    double square;

    square = 0;
    counter = 0;

    for(square = 0; square <= 100; square++); 
        square = Math.sqrt(square);
        counter++;
        System.out.println("The square root of " + counter + " is " +  
                    square);



}       
}

4 个答案:

答案 0 :(得分:1)

您永远调用 root方法。将其添加到主要:

public static void main(String args[]) {    
    double gallons;                          
    double liters;          

    gallons = 10;
    liters = gallons * 3.7854;

    System.out.println("The number of liters in " + gallons + " gallons is " + 
            liters);
    System.out.println();

    root(args); // ADD to call the method.
}

答案 1 :(得分:0)

JVM仅调用public static void main(String args[])作为java程序的入口点。

实际上,您永远不会在root方法中调用main方法。调用此方法来执行root方法的语句。

这样打电话。

public static void main(String args[])
{
   ........
   root();
}

我发现在root方法中没有使用参数。所以删除它。

for(square = 0; square <= 100; square++); 

在for循环结束时删除半冒号。

public static void root() {
    double counter = 0;
    for(counter= 0; counter <= 100; counter++) {
        System.out.println("The square root of " + counter + " is " +  Math.sqrt(counter));
    }
} 

答案 2 :(得分:0)

您必须添加对

的调用
root(args)

并且您的方法存在一些问题,我已经解决了,请在下面找到修改后的版本

 public static void root( String args[] )
    {
        double counter;
        double square;

        square = 0;
        counter = 0;

        for ( counter = 0; counter <= 100; counter++ )
        {
            square = Math.sqrt( counter );
            System.out.println( "The square root of " + counter + " is " + square );
        }

    }

答案 3 :(得分:0)

添加行root(args);,它将调用您的方法。

无论主要方法是什么,都会被调用直到main方法结束。 Java不会像人类一样从头到尾运行.java文件。它仅调用main方法中存在的那些行。包含行的主方法可以根据编程规则调用静态或非静态的其他方法。理解所有这些概念的最佳方式是学习OOP。购买两本“ Head First core java ”一书,一本给你,另一本给你的朋友讨论。

public static void main(String args[]) {
        double gallons;
        double liters;

        gallons = 10;
        liters = gallons * 3.7854;

        System.out.println("The number of liters in " + gallons + " gallons is " + liters);
        System.out.println();
        root(args);  //call this method here as per your expection of the output

    }