我是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小时都在搜索这些内容并且没有任何结果。
答案 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);
}
}