質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

5回答

1209閲覧

バグがわからない

ora.

総合スコア10

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2016/03/17 14:56

編集2016/03/17 15:39

public class Main{
public static void main(String[] args){
for(int testNumber=2;testNumber<=100;testNumber++){

/*素数を出力する*/ if(isPrimeNumber){ System.out.println(testNumber); } } } private static boolean isPrimeNumber(int testNumber){ boolean isPrimeNumber=true; for(int i = 2; i<testNumber; i++){ if(testNumber%i ==0){ isPrimeNumber = false; break; } } return isPrimeNumber;

}
}

どこにBugがあるのかわかりません!

具体的には、
100未満の素数を出力したいのですが、コンパイルすると
エラー
Main.java:6: シンボルが見つかりません
Main.java:6: 型の開始が不正です

とでます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tatsuya6502

2016/03/17 15:01

どんなバグがあるか具体的に書いてくだい。例:エラーが出てコンパイルできない(エラーの内容も具体的に)。実行するとエラーになる(エラーの内容も具体的に)。答えが違う(期待する答えと、実際の答えも具体的に)
tatsuya6502

2016/03/17 16:39

情報の追加、ありがとうございました。その行(6行目)の isPrimeNumber については、私が情報の追加をお願いした後に、ほかの方々から回答が付いていますので、そちらを参照してください。
guest

回答5

0

質問の内容は「コンパイルエラーを解消してプログラムが実行できるようにするにはどうしたらいいか?」
と解釈して回答します。

下記の箇所を修正すればエラーが解消されます。
↓修正前

java

1/*素数を出力する*/ 2if(isPrimeNumber){

↓修正後

if(isPrimeNumber(testNumber)){

なぜ、コンパイルエラーになったのか…
修正前はisPrimeNumber()が付いていないので、
コンパイラには「isPrimeNumberという変数だ」と解釈されました。
そこでisPrimeNumber変数を探してもエラー「シンボルがみつかりません」になっているのでしょう。

以上、
ご参考になりますでしょうか?

投稿2016/03/17 21:55

Aeona

総合スコア396

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

下記参考にしてください。
そして、実行が上手くいったら、数値を1つ増やしてみてください。
どちらも、興味深い結果になると思います。

Java

1public class Main{ 2 public static void main(String[] args){ 3 int maxValue = 2147483647; //メルセンヌ素数の1つ。intの最大値。 4 // 値が大きすぎるため、for文をコメントアウト 5 //for(int testNumber=2;testNumber<=maxValue;testNumber++){ 6 /*素数を出力する*/ 7 if(isPrimeNumber(testNumber)){ 8 System.out.println(testNumber); 9 } 10 //} 11 } 12 13 private static boolean isPrimeNumber(int testNumber){ 14 boolean isPrimeNumber=true; 15 for(int i = 2; i<testNumber; i++){ 16 if(testNumber%i ==0){ 17 isPrimeNumber = false; 18 break; 19 } 20 } 21 return isPrimeNumber; 22 } 23}

投稿2016/03/17 15:12

編集2016/03/17 15:32
Odacchi

総合スコア907

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

eclpse などの IDE をつかって、ステップ実行させるとか、
プログラム中の print 文や ログ出力文を追加して、自分が思っているような文の実行順序や変数の値の変化が起こっているかを調べてみるとよいです。

質問文には、
自分が思っている実行結果
実際の実行結果
の差について記載をすると良いです。
単に "Bugがある" だけでは、
どんなふうな動作を期待しているかが伝わらない
ので、
どんな風にコードを直すべきか
の回答がしにくいです。

投稿2016/03/17 15:05

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

if(isPrimeNumber){

この行に誤りがあります。isPrimeNumberという変数は宣言されていません。

人に聞く前にコンパイラのエラーメッセッジを読んでください。コンパイラはほとんどの場合的確に文法の誤りを指摘しています。
Good Luck!

投稿2016/03/17 15:04

RyogaK

総合スコア86

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

mainメソッドから見てisPrimeNumberという変数が存在しません。
存在しないものを参照できません。

投稿2016/03/17 15:02

swordone

総合スコア20651

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問