Java程序在Eclipse中终止,未运行

ut6juiuv  于 2022-12-03  发布在  Eclipse
关注(0)|答案(7)|浏览(187)

我是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个小时,什么也没找到。

zbwhf8kr

zbwhf8kr1#

您的main方法为空。因此不会发生任何事情:

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

ahy6op9u2#

没有显示任何内容,因为循环代码和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;
    }
}
ahy6op9u

ahy6op9u3#

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

e7arh2l6

e7arh2l64#

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
v8wbuo2f

v8wbuo2f5#

如果您在项目中导入了一些软件包,则可能会使这些软件包过期。有两种解决方案:
1.更改本地系统日期
1.使用新的用户ID再次下载软件包。希望它会有所帮助。

bvjxkvbb

bvjxkvbb6#

下面是修改后的代码:

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

    }
}
r1wp621o

r1wp621o7#

试试这个:

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

相关问题