2017-02-05 12 views
0

私は、テキストファイルに含まれている入力から三角形を識別するようにJavaを取得しようとしています。ユーザーが整数をコンソールに入力したときに三角形を識別するコードがありますが、別のテキストファイルから整数を読み取る必要があります。何らかの理由で、ファイルから読み込めないようなエラーが発生しています。私はファイル例外を追加しましたが、すべての3つのステートメントをprintlnしました。どんな助けもありがとう。私はちょうどファイルを開く上の通常のスレッドが私を助けているとは思わない。Java Triangle from Text File

import java.util.Scanner; 

public class Triangle { 
    public static void main(String[] args) { 
     Scanner user = new Scanner(System.in); 
     double a, b, c; 

     System.out.println("Enter longest side: "); 
     a = user.nextDouble(); 
     System.out.println("Enter second side: "); 
     b = user.nextDouble(); 
     System.out.println("Enter third side: "); 
     c = user.nextDouble(); 

     if (a == b && b == c) { 
      System.out.println("Equilateral Triangle"); 
     } else { 
      if ((a == b && b !=c) || (a == c && a != b)) { 
       System.out.println("Isoceles Triangle"); 
      } 
      if (a != b && b != c && a != c) { 
       System.out.println("Scalene Triangle"); 
      } 
      if (((a + b) > (c)) && ((a + c) > b) && ((b + c) > a)) { 
       System.out.println("Not a Triangle"); 
      } 
     }   
    } 
} 
+0

リンクされた重複したバグのすべての良い例を見て、あなたのコードに適用する必要があります。あなたはもっとその方法を学ぶでしょう。 – clearlight

+0

あなたのコードをきれいに保つ/尊敬するコードに沿ったスタイルガイドは、デバッグを助け、他人に読めるようにします。スタイリングと系統的なアプローチの一貫性は、デバッグと保守性の向上とピアレビューのサポートに非常に役立ちます。それには、オペレータの周りにスペースを入れることも含まれますすべてを詰め込むことで、プロコードとプロ以外のコードを見て、長くコードを書いて時間を費やすほど、本当に不愉快に見えます。また、時には中かっこを使用するという巧妙なやり方と、時にはif/elseとではないことが、常に利点であるとは限りません。場合によっては、stmtの場合は複雑な中括弧を使用する方が良い場合があります – clearlight

答えて

0

スキャナオブジェクトにテキストファイルを渡します。そうでない場合は、手動でパスを指定する必要があり、あなたのコード

File input = new File("Whatever.txt"); 
Scanner scan = new Scanner(input); 

プロジェクトディレクトリと同じパスにファイルを持っていることを確認してくださいにこれを追加します。

+0

助けてくれてありがとう。私はあなたが言ったこととEclipseが言ったことを加え、それは私のためにはうまくいかない。 public class Triangle { public static void main(String [] args){ \tファイル入力=新しいファイル( "input.txt"); スキャナースキャン=新しいスキャナー(入力); //変数 double a、b、c; System.out.println( "最長の入力:"); =((スキャナ)入力).nextDouble();System.out.println( "第2面に入力:"); b =((スキャナ)入力).nextDouble(); System.out.println( "第三者の入力:"); c =((スキャナ)入力).nextDouble(); – Ray2814

+0

これは私が現在やっていることです[リンク] https://postimg.org/image/tuabqun93/ – Ray2814

+0

それはあなたがやっているので、キャストについて不満です。 (Type)Objectは、Object to Typeのコストをかけようとします。スキャナを参照するには、in.nextDouble() – MacStation