前提・実現したいこと
2次方程式 Java
NullPointerExceptionの解決方法
ここに質問の内容を詳しく書いてください。
JAVA初心者です。二次方程式でendと入力するまで繰り返すプログラムを作成しています。
二次方程式のプログラムはできたのですが、繰り返しとend入力のプログラムがうまくいきません。
知恵を拝借させてください。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Calc1 {
public static void main(String[] args) { double a=0,b=0,c=0; double Re1,Re2,Im1,Im2,D; String line = "" ; while(true) { if(line.equals ("end")) { System.out.println("See you!"); break; } System.out.println("二次方程式ax^2+bx+c=0の係数の数値を入力せよ。"); try { InputStreamReader isr=new InputStreamReader(System.in); BufferedReader br=new BufferedReader(isr); line=br.readLine(); StringTokenizer st=new StringTokenizer(line,","); a=Double.parseDouble(st.nextToken()); b=Double.parseDouble(st.nextToken()); c=Double.parseDouble(st.nextToken()); }catch(Exception e) { System.out.println(e); } D=b*b-4*a*c; //解の判別式 if(D>0) { Re1=(-b+Math.sqrt(D))/(2*a); Re2=(-b-Math.sqrt(D))/(2*a); Im1=0; Im2=0; } else if(D==0) { Re1=-b/(2*a); Im1=0; Re2=Im2=0; } else { Re1=-b/(2*a); Re2=Re1; Im1=Math.sqrt(-D)/(2*a); Im2=-Im1; } if(D==0) { System.out.println( Re1 + "+" + "i" + Im1); } else { System.out.println( Re1 + "+" + "i" + Im1); System.out.println( Re2 + "+" + "i" + Im2); } } } }
試したこと
補足情報(FW/ツールのバージョンなど)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/06/30 12:32