myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   Programmieren in Java mit Eclipse (https://mygully.com/showthread.php?t=2472439)

xshaiax 03.11.11 20:50

Programmieren in Java mit Eclipse
 
import AlgoTools.*;
public class Grundrechnung {

Hallo liebes Team, ich habe folgendes Programm geschrieben:
(Ich weiss, ziemlich einfach und nur basis Befehle)


public static void main(String[] args)
{
int z1, z2, Summe, Differenz, Produkt, Quotient;

IO.println("Grundrechnungsarten"); //Überschrift des Programms
IO.println("==================="); //

z1=IO.readInt("Geben Sie Zahl 1 ein: ");
z2=IO.readInt("Geben Sie Zahl 2 ein: ");

Summe=z1+z2;
Differenz=z1-z2;
Produkt=z1*z2;
Quotient=z1/z2;

IO.print("Summe : ");
IO.println(Summe);
IO.print("Differenz : ");
IO.println(Differenz);
IO.print("Produkt : ");
IO.println(Produkt);
IO.print("Quotient : ");
IO.println(Quotient);

}
}
Meine Frage:

Mit welchen Befehlen kann ich eine Abfrage machen, ob ich das Programm, nach einer berechnung beenden will, oder eine weitere Berechnung durchführen möchte?
IO.println("Wollen Sie das Programm beenden?: );
IO.readChar 'y' 'n'
oder mit switch anweisung???

und nur wenn ich "y" oder "n" drücke soll das programm beendet oder wiederholt werden, andernfalls soll solange gefragt werden bis eine richtige eingabe gemacht wird.
ich hoffe jemand kann das optimal lösen, sodass ich das dann auf jedes zukünftige programm anwenden kann:T
vielen dank schonmal
mfg
xshaiax

urga 04.11.11 11:23

am einfachsten durch das erstellen bzw. auslagern von funktionen:
PHP-Code:

public static void rechnung1(void) {
  
int z1z2SummeDifferenzProduktQuotient;
  
  
z1=IO.readInt("Geben Sie Zahl 1 ein: ");
  .....
  
IO.println(Quotient);
  
}

public static 
char jaNein(void) {
 
char c 'x';
 while (
!= 'y' && != 'n') {
   
IO.println("Wollen Sie das Programm beenden?: ");
   
IO.readChar();
 }
 return 
c;


dann main() entsprechend anpassen, und dort ebenfalls mit einer while() arbeiten.

testerws 05.11.11 12:13

also, falls du so etwas wie eine Abfrage realisieren willst die dann bei einer bestimmten eingabe einen teil des codes wieder ausführen muss, dann solltest du dir (do while) oder (while) - loops anschauen hier zb.
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

Dies ist eine Möglichkeit wie du so etwas realisieren könntest, viel Spass beim Testen/Ändern.

Code:

public static void calculate(){
                char anwser ='y';
                Scanner input = new Scanner( System.in );
                try{
                        do{
                                System.out.print("Bitte erste Zahl eingeben: ");
                                int zahl1 = input.nextInt();
                                System.out.print("Bitte zweite Zahl eingeben: ");
                                int zahl2 = input.nextInt();
                                System.out.print("Erneut berechnen? (y/n): ");
                                anwser=input.next().charAt(0);
                        }while(anwser == 'y');
                }catch(InputMismatchException e){
                        System.out.println("falsche eingabe, beende programm");
                }
        }
       
        public static void main(String... args) {       
                System.out.println("beginn");
                calculate();
                System.out.println("ende");
        }


xshaiax 05.11.11 16:12

vielen dank für den lösungsansatz:T
geht das vielleicht nicht einfacher mit einer switch-case anweisung?
weil mit "try, catch, mehreren void mains haben wir bissher nicht gearbeitet:(
aber trotzdem danke schonmal, ich setz mich damit ausseinander

testerws 05.11.11 16:28

naja falls du urgas ansatz meinst, dass muss er dir schon beantworten, was er da fabriziert.

naja try-catch blöcke musst du dir angewöhnen um exceptions abzufangen, ansonsten habe ich bei mir eine methode mit einer do-while schleife in einem try catch block. es ist vermutlich nicht das beste beispiel, aber danach könntest du dich orientieren und ggf. code ändern/hinzufügen usw.

was willst du mit einer switch-case anweisung abbilden? beschreibe doch genauer wie du was umsetzen möchtest

urga 05.11.11 17:06

Zitat:

mehreren void mains
in einem programm gibt es nur ein void main.
try/catch wird wahrscheinlich schon durch die importierte AlgoTools.IO abgefangen.
mit meinen 2 funktionen oben sähe main dann so aus:
PHP-Code:

public static void main(String[] args) {
  
rechnung1();
  
char c jaNein();
  while (
== 'y') {
    
rechnung1();
    
jaNein();
  }
   
 




Alle Zeitangaben in WEZ +1. Es ist jetzt 23:13 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.