2012-04-04 18 views
-3

私はJavaコーディングで非常に新しいです。 mainメソッドと、値がプライムであるかどうかを判断するメソッドをリンクする方法を見つけるのが難しいです。私はEclipseの下のコードを実行すると、メソッドはまったく実行されていないようです。誰かが私が間違ったことを知っていますか?Javaメソッドを呼び出す方法

また、最後の部分については、System.outの入力値が素数であるかどうかを印刷することを考えていました。すなわちtrueまたはfalseは問題ありません。あなたはそれ以前に

else { 
return false; 
} 

を持っているよう

import java.util.*; 

class IsPrime { 
    public boolean isprime(int n) { 
     Scanner input1= new Scanner(System.in); 
     System.out.println("input single integer?"); 

     int n1 = input1.nextInt(); 

     int i,c=0; 

     for(i=1;i<=n1;i++) { 
      if(n1%i==0){ 
       c++; 
      } 
     } 
     if(c==2) { 
      return true; 
     } else { 
      return false; 
     } 
     System.out.println("Your number is:") 
    } 
} 
+0

を作成せずにそれを参照することができます。エラーメッセージが表示されましたか? –

+2

あなたが間違っていたことが1つ見えますが、メソッドが返ってから 'System.out.println'を呼び出そうとします。 – joshuahealy

+0

メインメソッドはありません。 – jahroy

答えて

2

ライン

System.out.println("Your number is:") 

が到達不能です。

+0

は理解してくれてありがとう!だか​​ら、私はintputの整数が素数であるかどうかを表示する新しいメソッドを作成しなければならないのですか? – user1313137

+0

メインメソッドが必要です... @Alonso Dominguezの答えを見てください。 – Martin

+0

@ user1313137、あなたはあなたの質問にいくつかの答えを持っています、もしそれが助けられたら[受諾](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)あなたは問題を解決する。 –

2

まず、ストロベリーとappclayが言っていることは正しいです。

一方、あなたのメソッドisprimeはインスタンスメソッドですが、main(私はあなたのメインクラスのメソッドについてお話します)はクラス(静的)メソッドです。

は、以下のことを試してみてください。

public static void main(String[] args) { 
    int possiblePrime = // initialise your parameter 
    IsPrime isPrime = new IsPrime(); 
    boolean primeOrNot = isPrime.isprime(possiblePrime); 
    System.out.println("Your number is prime: " + primeOrNot); 
} 
0

私はあなたがisprimeメソッドを実装し、メインでそれを呼び出すあるために探しているものを理解していれば。

class IsPrime { 
    public boolean isPrime(int n) { 
     int i,c=0; 

     for(i=1;i<=n;i++) { 
      if(n%i==0){ 
       c++; 
      } 
     } 
     if(c==2) { 
      return true; 
     } else { 
      return false; 
     } 
    } 
    public static void main(String[] args) { 
     Scanner input1= new Scanner(System.in); 
     System.out.println("input single integer?"); 

     int n = input1.nextInt(); 
     IsPrime isPrime = new IsPrime(); 
     System.out.println("Your number is prime: " + isPrime.isPrime(n)); 
    } 
} 

あなたがしたいことを行う必要があります。しかし、コードにバグがあります。 あなたが持っているものは、素数だけでなくすべての数に対してtrueを返します。私はバグと修正を見つけるためにそれをあなたに任せます。

EDIT:バグはありません。以下のコメントを参照してください。

+1

このメソッドは機能しますが、どのような方法でも効率的ではありません。私はちょうどそれをコード化して(文法を修正して)、5,13,​​10,25,91,97、そして100で実行し、それらすべてのために働いた。 – twain249

+0

一言!私はアホです。ループが2からn-1に移動しなければならないと考えていました。これは、if文がc> 0をチェックしていた場合に当てはまります。 –

0
静的にあなたの方法を変更し

、あなたが私たちに症状を伝えない限り、私たちはあなたが間違って何をしたかを伝えることはできませんそのクラスのインスタンス

public static boolean isprime(int n) { 
関連する問題