0

このプログラムでは、ユーザー (ユーザー) はゼロを入力するまで数字を入力し続けます。ゼロを入力すると、リストが終了し、正の偶数と奇数と負の数の合計が得られます。私はそれを完了するために最善を尽くしましたが、問題はhttp://ideone.com/と DrJava の両方を実行しようとするとハングすることです。しかし、それらはうまくコンパイルされます。これが私のプログラムです:

 /**
*@author DarkIceDragon
*/
 import java.util.*;
 class huge_addition
{
public static void main (String[] args)
{
    Scanner sc = new Scanner (System.in);
    System.out.println ("Enter numbers. List terminates when you enter a zero. Enter a zero when you want to begin the addition.");
    int a = sc.nextInt();
    int esum=0;
    int osum=0;
    int nsum=0;
    while (a !=0)
    {
        if (a>0)
        {
            if (a%2==0)
            {
                esum = esum+a;
            }// end of 3rd innermost if statement
            else
            {
            osum = osum+a;
            }// end of 3rd else statement
        }//end of 2nd middle if-else-loop
        else if (a<0)
        {
            nsum=nsum+a;
        }//end of 2nd middle else statement
    }//end of while loop
        System.out.println ("The sum of even positive numbers is "+esum);
        System.out.println ("The sum of odd positive numbers is "+osum);
        System.out.println ("The sum of negative numbers is "+nsum);
    }//end of main
        }//end of class

学校用であることは認めますが、残りはすべて自分で完了しました (約 16 かそこらありました)。夜の午前 12:00 で、このプログラムを 1 時間以上機能させようとしています。 . そして、私はまだJavaの完全な初心者です(noobの方が適切ですが)ので、今は基本的なコマンドなどだけです。なんてこった、今日まで、私は自分のプログラムでvoid main()代わりに を使用public static void main(String[] args)していて、なぜ NetBeans で実行されないのかと 2 時間も考えていました。残念ながら、BlueJ が機能しなくなりました。

どんな助けでも大歓迎です。ご覧いただきありがとうございます。良い一日を!

4

2 に答える 2

1

これはあなたの学校の宿題なので、ヒントだけに答えます。コード内の sc.nextInt() の位置を調べてください。2 番目のヒント: コードを実行するときに、最初の入力として数字の 0 を入力してみてください。

于 2013-01-26T18:59:27.620 に答える
0

を使用して while ループで毎回数値を受け入れる必要があります。sc.nextInt()あなたがしていたことは、while ループ内に入って何もしないことでした。毎回数値を受け入れ、その数値に基づいて、偶数か奇数かを確認します。追加します。

修正されたコードは次のとおりです。

import java.util.*;
class huge_addition
{
public static void main (String[] args)
{
Scanner sc = new Scanner (System.in);
System.out.println ("Enter numbers. List terminates when you enter a zero. Enter a zero when you want to begin the addition.");

// no need ->> int a = sc.nextInt();
int num=-1;
int esum=0;
int osum=0;
int nsum=0;
while (num !=0)
{

    System.out.println("enter the number");
       num= sc.nextInt();
        if (num%2==0)
        {
            esum = esum+num;
        }// end of 3rd innermost if statement
        else
        {
        osum = osum+num;
        }// end of 3rd else statement
    //end of 2nd middle if-else-loop
    if (num<0)
    {
        nsum=nsum+num;
    }//end of 2nd middle else statement
 }//end of while loop
    System.out.println ("The sum of even positive numbers is "+esum);
    System.out.println ("The sum of odd positive numbers is "+osum);
    System.out.println ("The sum of negative numbers is "+nsum);
 }//end of main
    }//end of class
于 2013-01-26T19:19:26.820 に答える