2016-06-22 12 views
1

Es ist möglich, weniger zu schreiben, zum Beispiel durch Schreiben der Bedingungen in eine if-Anweisung oder so ähnlich. Mein Punkt ist, den Quellcode zu schneiden und zu finden eine bessere Möglichkeit, die Informationen in der if-Anweisung zu summieren.Programm, das das Ergebnis in lineare Gleichung von: ax + b = 0

import java.util.*; 
public class LinGlj4u { 

    public static void main(String[] args) {   

     Scanner input = new Scanner(System.in); 
     System.out.print("Bitte geben sie den Wert für a ein : "); 
     double a = input.nextDouble(); 
     System.out.print("Bitte geben sie den Wert für b ein : "); 
     double b = input.nextDouble(); 

     double rechnung; 
     if (a + b > 0) { 
      rechnung = -b/a; 
      System.out.println(rechnung); 
     } else if (a + b < 0) { 
      rechnung = +b/a; 
      System.out.println(rechnung); 
     } else if (a + b == 0 || a - b == 0) { 
      System.out.println("x = 0"); 
     } 
    } 
} 
+0

Dank für die Bearbeitung @Jossef Harush – burakburi

+0

Könnten Sie ein [MCVE] mit allen Variablen deklariert posten? – c0der

+1

Sorry, das ist einfach falsch. Die einzige Überprüfung, die Sie vornehmen müssen, ist, ob a == 0; andernfalls ist die Lösung -b/a für alle a und b. – duffymo

Antwort

2

Hier ist eine kurze Version

import java.util.Scanner; 
    public class LinGlj4u { 

     public static void main(String[] args) { 

      Scanner input = new Scanner(System.in); 
      System.out.print("Bitte geben sie den Wert für a ein : "); 
      double a = input.nextDouble(); 
      System.out.print("Bitte geben sie den Wert für b ein : "); 
      double b = input.nextDouble(); 

      if(a != 0) { 
       System.out.println("result is " +(-b/a)); 
      } else { 
       System.out.println("result is infinity"); 
      } 
     } 

    } 
0

Ich würde es auf die Vereinfachung der folgenden

import java.util.*; 
public class LinGlj4u { 

public static void main(String[] args) {   

    Scanner input = new Scanner(System.in); 
    System.out.print("Bitte geben sie den Wert für a ein : "); 
    double a = input.nextDouble(); 
    System.out.print("Bitte geben sie den Wert für b ein : "); 
    double b = input.nextDouble(); 

    if (a == 0) { 
     System.out.println("x = 0"); 
    } 
    else{ 
     System.out.println(-b/a); 
    } 
} 
0

Hoffnung für dich kurz genug ist. Es gibt wahrscheinlich einen besseren, kürzeren Weg mit Regex wie Jossef in seinem Beispiel gezeigt hat. Die letzte else wenn Bedingung ist nicht wichtig, so einfach machen es anders sollte auch den Trick tun.

public static void main(String[] args) { 
    Scanner input = new Scanner(System.in); 
    // No need to ask twice, seperate inputs by space 
    System.out.print("Bitte geben sie den Wert für a ein : "); 
    Double a = input.nextDouble(); 
    Double b = input.nextDouble(); 
    Double rechnung; 

    if (a != 0) 
     rechnung = -b/a; 
    else { 
     System.out.println("x goes to infinity"); 
     return; 
    } 
    System.out.println(rechnung); 
} 
+0

Nicht korrekt; Algebra ist falsch. – duffymo

+0

@ Duffymo du hast Recht, aber die Algebra ist in der Frage falsch. – c0der

+0

Genau; Warum wiederhole den Fehler in einer schlechten Antwort? Dein ist richtig, @ coder. – duffymo

-1

Sie Code

Import java.util.Scanner folgende verwenden können;

public class Gleichung {

public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 
     System.out.print("Please enter a Number");  
     double a = input.nextDouble(); 
     System.out.print("Please enter a Number ");  
     double b = input.nextDouble(); 

     if(a==0) { 
      System.out.println("can not evaluate expression for a = 0 "); 
     } else { 
      double division = (b/a); 
      double ans = -1 * division ; 
      System.out.println(" Expression evaluation is " + ans); 
     } 

} 

}