Java程序在eclipse中终止而没有运行

时间:2014-09-18 07:50:49

标签: java eclipse

我是Java的新手,我只是尝试使用eclipse运行一个简单的程序,该程序采用3或5到0到1000之间的数字并将它们全部加在一起。我尝试运行代码,但程序只在运行一秒后终止,并且在我的控制台上不显示任何内容。这是我的代码。

public class PrimeSum {


    public static void main(String args[]){

    }
    private double Num= 0.0;
    private double sum = 0.0;{

    for(int i=0;i<1001;i++){
        Num = i;
        if(i % 3 == 0.0){
            sum += i;
        if(i % 5 == 0.0){
            if(i % 3 != 0.0){
                sum += i;
            }
        }
        }

    }

    System.out.println("The total is "+ sum);
}

有人可以告诉我为什么会这样,我过去2小时都在搜索这些内容并且没有任何结果。

6 个答案:

答案 0 :(得分:2)

您的主要方法是空的。没有任何反应:

public static void main(String args[]){

}

可能你想创建一个方法,但你刚刚在这里创建了一个代码块:

private double sum = 0.0;{

    for(int i=0;i<1001;i++){
        Num = i;
        if(i % 3 == 0.0){
            sum += i;
        if(i % 5 == 0.0){
            if(i % 3 != 0.0){
                sum += i;
            }
        }
        }

    }

现在,即使在main方法中创建类的对象,此代码也可以正常工作。因为此代码块将在对象创建时执行。

我无法解释这个答案中有关代码结构的所有基础知识。但这可能是你想要的:

public class PrimeSum {

    public static void main(String args[]){
    PrimeSum obj =  new PrimeSum(); // creating an instance of your class will trigger the instance code block
    }
    private double Num= 0.0;
    private double sum = 0.0;{

    for(int i=0;i<1001;i++){
        Num = i;
        if(i % 3 == 0.0){
            sum += i;
        if(i % 5 == 0.0){
            if(i % 3 != 0.0){
                sum += i;
            }
        }
        }
    }   
    System.out.println("The total is "+ sum);
    }
}

答案 1 :(得分:2)

由于循环代码和println 未运行,因此未显示任何内容。使用的构造是instance initialization block。但是,PrimeSum类的实例从未创建 - 因此块永远不会执行

简单的解决方法是将代码移动到 执行的main方法中。 (请注意,它是static,因此可以在没有创建实例的情况下将其命名为。)

考虑:

public class PrimeSum {

    public static void main(String args[]){
        System.out.println("Hi, in main!");
        // Now create instance, run initialization block..
        new PrimeSum();
        // .. but really, just put the code in main, or better,
        // a method called from main ..
        System.out.println("Sum is " + calculateSum());
    }

    /* private double sum = 0.0; <-- note newlines added here for clarity */

    {
       // This is an instance initialization block, it does NOT run
       // until/when an instance is created.
       // (The original never ran code in here, because an instance was
       //  never created.)
       System.out.println("Hi, in instance initialization block!");
    }

    static double calculateSum() {
        // Do math, return value
        return 42;
    }
}

答案 2 :(得分:0)

您的main方法中没有任何编码。所以我认为你期望在控制台上有一个可见的输出。如果您需要在控制台中查看结果,则应在代码中添加System.out.println()

答案 3 :(得分:0)

import java.sql.*;
public class JDBCConnect 
{

public static void main(String[] args) {

Connection con;
Statement st;
ResultSet rs;
int no;
String nm,typ;
double bal;
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
con=DriverManager.getConnection("jdbc:oracle:thin:@217.212.7.169:1521:cashutv3","cash_test","cash_test");
st=con.createStatement();
rs=st.executeQuery("select * from accounts");

while(rs.next())
{
no=rs.getInt("accno");
nm=rs.getString("accnm");
typ=rs.getString("acctype");
bal=rs.getDouble("balance");
System.out.println("account no is "+no);
System.out.println("Name is "+nm);
System.out.println("account type is "+typ);
System.out.println("balance is "+bal);
}
con.close();
}

catch(Exception e)
{
System.out.println(e);
}

}


    }

// program got terminated and its displaying the path of javaw.exe file

答案 4 :(得分:-1)

以下是修改后的代码:

public class PrimeSum {
  public static void main(String args[]) {

        double Num = 0.0;
        double sum = 0.0;
        {

            for (int i = 0; i < 1001; i++) {
                Num = i;
                if (i % 3 == 0.0) {
                    sum += i;
                    if (i % 5 == 0.0) {
                        if (i % 3 != 0.0) {
                            sum += i;
                        }
                    }
                }

            }

            System.out.println("The total is " + sum);
        }

    }
}

答案 5 :(得分:-2)

试试这个:

public class PrimeSum {

 public static void main(String args[]) {

    private double Num= 0.0;
    private double sum = 0.0;

    for(int i=0;i<1001;i++) {
        Num = i;
        if(i % 3 == 0.0) {
            sum += i;
            if(i % 5 == 0.0) {
                if(i % 3 != 0.0) {
                   sum += i;
                }
            }
        }
    }

    System.out.println("The total is "+ sum);
 }
}