Ich brauche Hilfe bei einem Code (Variablen speichern)

Jay_LP_

Aktives Mitglied
Hallo,

ich wollte fragen wie man Variablen speichern kann. Ich wollte ein Programm schreiben wo man schulden usw. eingeben kann und ich würde gerne das man einen Standardwert (am Anfang) eingeben kann und der dann verändert wird wenn man sag ich mal -5 rechnet und dann -5 für nächste Rechnungen verwendet werden kann. Und die variablen sind über verschiedene Skripte

Danke schon mal für eure Antworten!
 
Hallo,

ich wollte fragen wie man Variablen speichern kann. Ich wollte ein Programm schreiben wo man schulden usw. eingeben kann und ich würde gerne das man einen Standardwert (am Anfang) eingeben kann und der dann verändert wird wenn man sag ich mal -5 rechnet und dann -5 für nächste Rechnungen verwendet werden kann. Und die variablen sind über verschiedene Skripte

Danke schon mal für eure Antworten!
Eine Variable zu speichern geht nicht so ganz, was du machen kannst ist Variablen zu deklarieren und dann diesen Werte zuweisen.

Du kannst den Wert dieser Variable beliebig oft verändern.
 
Ok kannst du mir das genauer erklären bin neu bei java
In Java gibt es primitive und Refernzdatentypen, primitive Datentypen sind z.B. Solche:
Java:
boolean check = true;
int number = 1;
double otherNumber = 50.2;
Referenzdatentypen sind Klassen welche als Objekte instanziert werden(Die einzige Ausnahme ist ein String, dieser kann wie ein primitiver Datentyp verwendet werden), so werden Objekte instanziert:
Java:
Testklasse k = new Testklasse();
 
Wenn du Werte einlesen möchtest geht das zum Beispiel so:


Java:
public static void main(String[] args){
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    int zahl = 0;
   
    for(int i = 0; i < 3; i++){
        System.out.println(" Geben sie eine Zahl ein");
        zahl = Integer.parseInt(in.readLine());
    }
}
 
Wenn du Werte einlesen möchtest geht das zum Beispiel so:


Java:
public static void main(String[] args){
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    int zahl = 0;
  
    for(int i = 0; i < 3; i++){
        System.out.println(" Geben sie eine Zahl ein");
        zahl = Integer.parseInt(in.readLine());
    }
}
Da kommt bei mir raus das ich einen Try/Catch block machen soll?
 
Da kommt bei mir raus das ich einen Try/Catch block machen soll?
Das ist dazu da um Fehleingaben abzufangen. Wenn nämlich etwas eingelesen wird, was keine Zahl ist wird eine so genannte Exception geworfen. Diese fängst du mich einem Try Catch block. Es könnte zum Beispiel so aussehen:
Java:
public static void main(String[] args){
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    int zahl = 0;
  
    for(int i = 0; i < 3; i++){
        System.out.println(" Geben sie eine Zahl ein");
        try{
            zahl = Integer.parseInt(in.readLine());
        }catch(NumberFormatException ex){
            ex.printStackTrace();
        }
    }
}
 
Und wie kann ich das jetzt anwenden, also ich wollte das ja so machen das man einen Anfangswert angibt und mit dem Plus und minus rechnen kann und der wert aktualisiert wird
 
Du könntest außerhalb der Schleife eine Zahl einlesen. In der Schleife könntest du eine Eingabe Aufforderung Printen und anhand des eingelesenen Wert entweder eine Addition oder eine Subtraktion durchführen.
 
import java.util.Scanner;
import java.io.File;


public class abfrage {


public abfrage() {
String antwort1;
int antwort;
boolean weiter = false;
boolean weiter1 = false;





if(Main.Geld == 0) {
System.out.print("Gebe den Startbetrag an: ");
Scanner g = new Scanner(System.in);
Main.Geld = g.nextInt();


while (weiter == false) {
System.out.print("Gib den user an: ");
Scanner s = new Scanner(System.in);

antwort1= s.next();

if (antwort1.equals("Person1")) {
weiter = true;
System.out.println("Person1 wird belastet");
Main.plus = true;
while (weiter1 == false) {
if (Main.plus == true) {
System.out.print("Gebe den Betrag an: ");
Scanner b = new Scanner(System.in);
antwort = b.nextInt();
if (antwort > 0) {
weiter1 = true;
Main.Geld = Main.Geld + antwort;
System.out.println(Main.Geld);



}


}else {
System.out.println("Es können keine Buchstaben oder kleinere Zahlen als 0 eingegeben werden");

}
}
}else if (antwort1.equals("Person2")) {
weiter = true;
System.out.println("Person2 wird belastet");
Main.plus = false;

}else {
System.out.println("Diesen Namen gibt es nicht");
}
}
}

}


}
 
Javascript:
import java.util.Scanner;
import java.io.File;


public class abfrage {
    

    public abfrage() {
        String antwort1;
        int antwort;
        boolean weiter = false;
        boolean weiter1 = false;
        
        
        
        
        
        if(Main.Geld == 0) {
            System.out.print("Gebe den Startbetrag an: ");
            Scanner g = new Scanner(System.in);
            Main.Geld = g.nextInt();
        
        
        while (weiter == false) {
        System.out.print("Gib den user an: ");
        Scanner s = new Scanner(System.in);
        
        antwort1= s.next();
        
        if (antwort1.equals("Person1")) {
            weiter = true;
            System.out.println("Person1 wird belastet");
            Main.plus = true;
            while (weiter1 == false) {
                if (Main.plus == true) {
                    System.out.print("Gebe den Betrag an: ");
                    Scanner b = new Scanner(System.in);
                    antwort = b.nextInt();
                    if (antwort > 0) {
                        weiter1 = true;
                        Main.Geld = Main.Geld + antwort;
                        System.out.println(Main.Geld);
                        
                    
                        
                    }
                        
                        
                    }else {
                        System.out.println("Es können keine Buchstaben oder kleinere Zahlen als 0 eingegeben werden");
                        
                    }
            }
        }else if (antwort1.equals("Person2")) {
            weiter = true;
            System.out.println("Person2 wird belastet");
            Main.plus = false;
            
            }else {
                System.out.println("Diesen Namen gibt es nicht");
            }
        }
        }
        
        }
        
        
    }
 
Javascript:
import java.util.Scanner;
import java.io.File;


public class abfrage {
  

    public abfrage() {
        String antwort1;
        int antwort;
        boolean weiter = false;
        boolean weiter1 = false;
      
      
      
      
      
        if(Main.Geld == 0) {
            System.out.print("Gebe den Startbetrag an: ");
            Scanner g = new Scanner(System.in);
            Main.Geld = g.nextInt();
      
      
        while (weiter == false) {
        System.out.print("Gib den user an: ");
        Scanner s = new Scanner(System.in);
      
        antwort1= s.next();
      
        if (antwort1.equals("Person1")) {
            weiter = true;
            System.out.println("Person1 wird belastet");
            Main.plus = true;
            while (weiter1 == false) {
                if (Main.plus == true) {
                    System.out.print("Gebe den Betrag an: ");
                    Scanner b = new Scanner(System.in);
                    antwort = b.nextInt();
                    if (antwort > 0) {
                        weiter1 = true;
                        Main.Geld = Main.Geld + antwort;
                        System.out.println(Main.Geld);
                      
                  
                      
                    }
                      
                      
                    }else {
                        System.out.println("Es können keine Buchstaben oder kleinere Zahlen als 0 eingegeben werden");
                      
                    }
            }
        }else if (antwort1.equals("Person2")) {
            weiter = true;
            System.out.println("Person2 wird belastet");
            Main.plus = false;
          
            }else {
                System.out.println("Diesen Namen gibt es nicht");
            }
        }
        }
      
        }
      
      
    }
Ich kann dir nur raten, deinen Code vernünftige einzurücken 😉 Überlege dir bevor du anfängst Code zu schreiben, wie du deinen Code überhaupt aufbauen möchtest.

Ebenfalls solltest du die an die Konvention halten und deinen Code in sinnvoll in Methoden, welche maximal 10-12 Zeilen haben, aufzusplitten.
 
Das problem ist wenn ich das Programm neu starte ist der wert der Variable leer
Java:
static int Geld;
so habe ich die geschrieben. Ich würde nur gern wissen wie ich mit dem letzten wert weiter machen kann, also wenn ich es das Programm neustarte das der vorherige wert benutzt wird
 
Wenn du werde dauerhaft speichern möchtest, bräuchtest du deine Datenbank. Dies ist hier jedoch überflüssig, da man es auch mit einer Schleife lösen könnte.
 
Naja hängt davon ab wie du es modellieren möchtest, ich nehme mal an du möchtest eine Art Konto modellieren. In diesem Fall könntest du ein Objekt vom Typ "Person" erstellen z.B. so:

Java:
public class Person{
    private int kontostand;
   
    public Person(int kontostand){
        this.kontostand = kontostand;
    }
   
    public int getKontostand(){
        return kontostand;
    }
   
    public void setKontostand(int kontostand){
        this.kontostand = kontostand;
    }
}

Deine Main Methode könnte so aussehen:

Java:
public class Test{
    public static void main(String[] args){
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        Person leon = new Person(1000);
        Person max = new Person(900);
        
        boolean check = true;
        String tmp = "";
        while(check){
            System.out.println("Welche Person wollen sie auswählen?");
            tmp = in.readLine();
            
            if(tmp.equals("max")){
                //..do stuff
            }else if(tmp.equals("leon")){
                //..do stuff
            }else{
                System.out.println("Diese Person existiert nicht!")
            }
        }
    }
}
 
Zuletzt bearbeitet:
Ok, muss ich noch was machen irgendwie der Variable einen wert geben oder so?
Also indem du dem Objekt Person im Konstruktor einen Wert übergibst, wird dieser Wert automatisch dem Attribut der Klasse zugewiesen. Solltest du jetzt Geld abziehen wollen müsstest du die getter und setter Methoden der Klasse verwenden z.B. so:
Java:
.....
    System.out.println("Geben sie den Wert der Rechnung ein: ");
    number = Integer.parseInt(in.readLine());  //   <-- Wert einlesen
    number = number-max.getKontoStand();  // <--- Geld wird abgezogen
    max.setKontostand(number);     // <--- neuer Kontostand durch setter Methode zugewiesen
......
 

Zurück
Oben