Java Taschenrechner (Division und Graphische Oberfläsche?

Hallo Community, ich habe ein paar Fragen zu meinem Java Taschenrechner. Am Anfang möchte ich noch sagen das ich erst neu in Java bin und bitte keine besserrichen und herablassenden Antworten zu meinem Taschenrechner möchte.

Hier einmal mein Taschenrechner:

import java.util.Scanner; //Wichtig!

public class Taschenrechner {

    public static void main (String [] args) {
    
        System.out.println("Das hier ist ein Taschenrechner!");
        System.out.println("Bitte definiere die Variablen: a+b c-d e*f g/h");
        
    Scanner sc = new Scanner(System.in);
        double a = sc.nextInt();
            System.out.println("Variable a = " +a); // Anzeige für alle eingegebenen Variablen
        double b = sc.nextInt();
            System.out.println("Variable b = " +b);
        double c = sc.nextInt();
            System.out.println("Variable c = " +c);
        double d = sc.nextInt();
            System.out.println("Variable d = " +d);
        double e = sc.nextInt();
            System.out.println("Variable e = " +e);
        double f = sc.nextInt();
            System.out.println("Variable f = " +f);
        double g = sc.nextInt();    
            System.out.println("Variable g = " +g);
        double h = sc.nextInt();
            System.out.println("Variable h = " +h);
            
            
// Ab hier die Rechenopperrationen      
    double z = a + b; //Addition
    double y = c - d; //Subtraktion
    double x = e * f; //Multiplikation
                      //Division befindet sich weiter unten in der if Schleife
    
    
    
//Ab hier die Ausgabe der Ergebnise 
    System.out.println("Das Ergebnis der Addition lautet= " + z);
    System.out.println("Das Ergebnis der Subtraktion lautet= " + y);
    System.out.println("Das Ergebnis der Multiplikation lautet= " + x);
    if (h == 0) {
        System.err.println("Division durch 0 ist nicht möglich!");
    }
    else {
        double w = g / h; System.out.println("Das Ergebnis der Division lautet= " +w);
    }
    
    
    
    
    
    }
    
}
  1. Wie kann ich meine Eingabe(input) optimieren?
  2. Wieso bekomme ich bei 50/100 den Wert 0? Ich habe den Datentyp als Double deklariert um genau das nicht zu bekommen. Wo liegt mein Fehler?
  3. Wie würde das später mit einer Graphischen Oberfläsche aussehen?

PS.: Ich möchte nicht einfach irgend einen Code kopieren sondern auch verstehen was er macht also bitte mit erklärung. Das ganze Programm dient nur zur Übung um meine Java Kenntnisse zu erweitern.

Danke! :)

programmieren, Java
Weitere Inhalte können nur Nutzer sehen, die bei uns eingeloggt sind.