2016-07-26 15 views
0

私のコードでは何の誤りもありませんが、私が望むことはしていません。私はanother question related to divisibility to 3 or 5があることを理解していますが、私たちのコーディングが完全に異なって構築されているので、質問は関係していないと思います。私はまた、this answerthis other answeror even this answerも私を助けてくれないことがわかります。私のJavaプログラムは、整数が3または5で割り切れるかどうかをテストしていますが、すべての整数を出力しているだけです。どうすれば修正できますか?

とにかく、単純なブール式を使用して、式が真かどうかを判断し、真であるかどうか、または異なる行を印刷していないかどうかを判断しようとしています。私はなるだろう意図表情のようなものされています

3 is divisible by 3 
3 is not divisible by 3 
3 is divisible by 5 
3 is not divisible by 5 
and so on... 

最初の問題を見つけることができるhere.今私はちょうどしようと、コードを試しています:しかし、私はこれを

3 is divisible by 3 
3 is not divisible by 5 
4 is not divisible by 3 
4 is not divisible by 5 
5 is not divisible by 3 
5 is divisible by 5 
and so on... 

を取得していますJavaの理解を深めることができます。私は数値で割り切れない整数から数値で割り切れる整数を分ける方法を知り始めたので、これをテストする最良の方法は線を印刷することでした。私はここですべての正しい方向に行くのか分からない。私が持っている現在のコードや、このプログラムを動作させるために使用しなければならない対応するJavaコマンドへのリンクなどのヒントを教えてもらえますか?あなたがうまくいくコードを投稿すれば、私は何をすべきかを知ることができます。それはいいですが、私にそれを説明してください。私は何をタイプするのかを知りたくないので、プログラミングの問題解決の確かな基礎を開発しようとしています。

申し訳ありません申し訳ありませんが、これはひどい疑問ですが、私は一般的なプログラミングには非常に慣れていて、完全に自習しています。私にいくつかの指摘を与えてください、私は間違いなく質問を変えることができます!

package multiplesof3and5; 

public class InitialProgram { 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     int integer1; 
     integer1 = 0; 
     boolean divisibleby3 = (integer1 % 3) == 0; 
     boolean divisibleby5 = (integer1 % 5) == 0; 

      for(integer1=0; integer1<1000; integer1++){ 
      if(divisibleby3 = true);{ 
       System.out.println(integer1 + " can be divided by 3");} 
      if(divisibleby3 = false);{ 
       System.out.println(integer1 + " cannot be divided by 3");} 
      if(divisibleby5 = true);{ 
       System.out.println(integer1 + " can be divided by 5");} 
      if(divisibleby5 = false);{ 
       System.out.println(integer1 + " cannot be divided by 5"); 
      } 

     } 



    } 
} 
+2

まず、あなたは割り当てと比較していないので、あなたは... 2つの等号ではなく、1 –

+0

で値を比較。 – PcAF

+3

また、 'if()'の後ろにあるセミコロンをすべて削除してください。そうでない場合は 'if'sは効果がありません。 – PcAF

答えて

0

あなたは数字に対してそれをチェックするために開始する前に、あなたはあなたの割り切れるをdeteminingしている:

int integer1; 
integer1 = 0; 
boolean divisibleby3 = (integer1 % 3) == 0; 
boolean divisibleby5 = (integer1 % 5) == 0; 

    for(integer1=0; integer1<1000; integer1++){ 

あなたが継続的にinteger1の各変更であなた割り切れるを更新する必要があり、そのよう:

for(integer1=0; integer1<1000; integer1++){   
    boolean divisibleby3 = (integer1 % 3) == 0; 
    boolean divisibleby5 = (integer1 % 5) == 0; 

ちょうど気づいた@ヘキサフレクシングの答え:

また、あなたは、あなたのコード内の問題は、あなたのブール値を変更することはありませんということです=

0

を使用するので、今あなただけの、trueまたはfalseにブール値を代入している、==で文を比較する必要があります。 初期整数のみに基づいているため、常に同じままです。 これを修正するには、両方のブール宣言をforループに移動するだけです。 私はモバイルですので、書き留める/チェックすることはできませんが、それはうまくいくでしょう。起動するには 敬具、 -Yuvalガット

1

if(divisibleby3 = true);{ 

が浮遊セミコロンを持っています。第2に、=は代入ですが、比較のために==を使用する必要があり、ブール値には必要ありません。このフォーマットを使用します。

if(divisibleby3){ 

if(!divisibleby3){ // if not divisible by three 

第二に、

boolean divisibleby3 = (integer1 % 3) == 0; 
boolean divisibleby5 = (integer1 % 5) == 0; 

そうでない場合にのみ、あなただけ(一度評価していることから、ループ内である必要が0が3と5で割り切れるかどうかを確認し、それぞれのiをチェックするのではなく、そのチェックの結果を繰り返し使用するnteger)。

オプションで、if/ifのペアを使用する代わりに、各ループでif/elseを2回使用することができます(3で割り切れる場合はそれを、それ以外の場合は5で割り切れます)。これが動作するコードで終わりで

、すべての

public static void main(String[] args) { 
     for(int integer1 = 0; integer1 < 1000; integer1++){ 
     boolean divisibleby3 = (integer1 % 3) == 0; 
     boolean divisibleby5 = (integer1 % 5) == 0; 
     if(divisibleby3) { 
      System.out.println(integer1 + " can be divided by 3"); 
     } else { 
      System.out.println(integer1 + " cannot be divided by 3"); 
     } 
     if(divisibleby5){ 
      System.out.println(integer1 + " can be divided by 5"); 
     } else { 
      System.out.println(integer1 + " cannot be divided by 5"); 
     } 

    } 



} 
関連する問題