Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Java
You last visited: Today at 22:45

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Java Taschenrechner // Code nicht Anfängerfreundlich =0

Discussion on Java Taschenrechner // Code nicht Anfängerfreundlich =0 within the Java forum part of the Coders Den category.

Reply
 
Old   #1
 
Crystal M0th's Avatar
 
elite*gold: 70
Join Date: Apr 2011
Posts: 423
Received Thanks: 49
Java Taschenrechner // Code nicht Anfängerfreundlich =0

Hallo,

ich begonnen Java zu lernen und als kleine Aufgabe habe ich mir vorgenommen einen kleinen Taschenrechner zu erstellen.
Ich muss ehrlich sagen, dass es in C++ wirklich einfacher ist eine TR zu schreiben als in Java, vor allem, weil der gesammte Code in C++ kürzer und einfacher ist. Oder kann man das auch kürzer zusammenfassen in Java?

Java Taschenrechner Code:

Crystal M0th is offline  
Old 05/08/2014, 11:07   #2
 
XxharCs's Avatar
 
elite*gold: 34
Join Date: Apr 2011
Posts: 1,475
Received Thanks: 1,228
Das liegt vielleicht daran, dass man in C++ so wie in jeder anderen Programmiersprache die Variablen am Anfang deklariert, die nötigen Imports nimmt und somit Klassen "normal" erstellt.

Was du jedoch da machst ist, du importes die java.util nicht, somit gibst du den ganzen Pfad an wenn du den Scanner erstellst. Zweitens erstellst du eine Variable immer nach einem S.o.p. was naja, wie soll ich das sagen, wie oben beschrieben solltest die Variablen am Anfang deklarieren und erst danach initialisieren.

Am Ende kommt es aufs selbe raus, was die länge angeht.


Edit: Mein Taschenrechner in C, den ich damals gemacht habe(als ich angefangen hab C zu lernen), war vielleicht doppelt solang als deins oder die meisten anderen Taschenrechner. =>
XxharCs is offline  
Thanks
1 User
Old 05/08/2014, 12:36   #3


 
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
Quote:
Originally Posted by XxharCs View Post
Das liegt vielleicht daran, dass man in C++ so wie in jeder anderen Programmiersprache die Variablen am Anfang deklariert,

Zweitens erstellst du eine Variable immer nach einem S.o.p. was naja, wie soll ich das sagen, wie oben beschrieben solltest die Variablen am Anfang deklarieren und erst danach initialisieren.
Seit wann deklariert man Variablen am Anfang? Das wird total unübersichtlich je länger die Funktion wird.

Was ist ein S.o.p. und warum sollte der die Variable nicht danach erstellen?
Mostey is offline  
Thanks
1 User
Old 05/08/2014, 12:55   #4
 
XxharCs's Avatar
 
elite*gold: 34
Join Date: Apr 2011
Posts: 1,475
Received Thanks: 1,228
Quote:
Originally Posted by Mostey View Post
Seit wann deklariert man Variablen am Anfang? Das wird total unübersichtlich je länger die Funktion wird.
Was wär daran unübersichtlich? Gerade wegen der Übersichtlichkeit, werden Variablen am Anfang deklariert. Initialisieren kann man sie wann man will, aber deklarieren sollte man am Anfang, weil schönes programmieren, Übersichtlichkeit, Paradigmen etc.


Quote:
Originally Posted by Mostey View Post
Was ist ein S.o.p. und warum sollte der die Variable nicht danach erstellen?
S.o.p = System.out.print(ln).
Ich sage nicht, dass sie nicht danach erstellt werden soll, mein Kommentar bezieht sich generell auf sein Bsp. jetzt. Klar, dass man irgendwann nach einer Operation eine Variable erstellen will, aber wie gesagt, besser am Anfang deklarieren und erst später bei der Verwendung initialisieren usw.
XxharCs is offline  
Old 05/08/2014, 13:14   #5


 
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
Quote:
Originally Posted by XxharCs View Post
Was wär daran unübersichtlich? Gerade wegen der Übersichtlichkeit, werden Variablen am Anfang deklariert. Initialisieren kann man sie wann man will, aber deklarieren sollte man am Anfang, weil schönes programmieren, Übersichtlichkeit, Paradigmen etc.
Und wenn ich den Datentyp der Variable wissen will? Und nein, gewisse Kürzel in einen Variablennamen aufnehmen ist auch nicht sauber.

Die Position der Deklarierung ist überhaupt kein Faktor von sauberer und schöner Programmierung. (Scopes mal ausgenommen)

Quote:
Originally Posted by XxharCs View Post
S.o.p = System.out.print(ln).
Ich sage nicht, dass sie nicht danach erstellt werden soll, mein Kommentar bezieht sich generell auf sein Bsp. jetzt. Klar, dass man irgendwann nach einer Operation eine Variable erstellen will, aber wie gesagt, besser am Anfang deklarieren und erst später bei der Verwendung initialisieren usw.
Wieso? In diesem Beispiel ist der Code vielleicht übersichtlich weil er einfach aus wenigen Zeilen besteht, hast du aber mal mehr Code in einer Funktion und kompliziertere Vorgänge, schneidest du dir damit ins eigene Fleisch.

Du kannst mir das glauben, ich hab' auch mal ne Zeit lang so gedacht.
Mostey is offline  
Old 05/08/2014, 14:01   #6
 
elite*gold: 0
Join Date: Jan 2012
Posts: 759
Received Thanks: 416
Quote:
Originally Posted by Crystal M0th View Post
schreiben als in Java, vor allem, weil der gesammte Code in C++ kürzer und einfacher ist. Oder kann man das auch kürzer zusammenfassen in Java?
Code:
public class Test {

    public static void main(String[] args) {
        java.util.function.Function<String, String> f = (t) -> {
            System.out.println(t);
            return new java.util.Scanner(System.in).next();
        };
        double a = Double.parseDouble(f.apply("Zahl 1:"));
        double b = Double.parseDouble(f.apply("Zahl 2:"));
        double[] r = {a * b, a + b, 0, a - b, 0, a / b};
        System.out.println("Ergebnis: " + r[f.apply("+,-,*,/").charAt(0) - '*']);
    }
}
Etwas kürzer.
dowhile is offline  
Old 05/30/2014, 13:30   #7
 
elite*gold: 0
Join Date: Oct 2011
Posts: 12
Received Thanks: 0
Quote:
Originally Posted by Mostey View Post
Und wenn ich den Datentyp der Variable wissen will? Und nein, gewisse Kürzel in einen Variablennamen aufnehmen ist auch nicht sauber.

Die Position der Deklarierung ist überhaupt kein Faktor von sauberer und schöner Programmierung. (Scopes mal ausgenommen)
Also wir bauen unsere Programme in der Schule nach den UML Diagrammen auf. Und das ist auf jedenfalls hilfreich!
SHEEERO is offline  
Old 05/30/2014, 14:54   #8
 
Schlüsselbein's Avatar
 
elite*gold: 0
Join Date: Feb 2013
Posts: 1,137
Received Thanks: 869
Um auch mal meinen Senf zum Deklarieren der Variablen zu geben: So lokal wie möglich; so global, wie nötig. Oder deklariert ihr eure Zählvariablen für Schleifen auch schon zu Beginn der Funktion?
Ausserdem wurde eben genau dieses Feature nicht umsonst mit dem C99 Standard eingeführt.

Stellt euch mal vor, ihr habt ne ellenlange Funktion und zu Beginn direkt mal 12 Variablen, davon 8 mit irgendwelchen Dummywerten initialisiert, deklariert - nicht gerade schön.
Abgesehen davon kann es Fehler vermeiden und dem Compiler das Optimieren erleichtern.


http://de.wikipedia.org/wiki/YAGNI
Schlüsselbein is offline  
Thanks
1 User
Old 05/30/2014, 15:30   #9


 
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
Quote:
Originally Posted by SHEEERO View Post
Also wir bauen unsere Programme in der Schule nach den UML Diagrammen auf. Und das ist auf jedenfalls hilfreich!
Da werden aber keine lokalen Variablen mit aufgenommen.
Mostey is offline  
Old 05/30/2014, 15:53   #10

 
snow's Avatar
 
elite*gold: 724
Join Date: Mar 2011
Posts: 10,479
Received Thanks: 3,318
Quote:
Originally Posted by Mostey View Post
Seit wann deklariert man Variablen am Anfang? Das wird total unübersichtlich je länger die Funktion wird.
Frag mal deinen Compiler, wo er denn den Speicher für die Variablen reserviert.
snow is offline  
Thanks
1 User
Old 05/30/2014, 17:10   #11
 
elite*gold: 1
Join Date: Aug 2013
Posts: 1,898
Received Thanks: 1,346
In Lua muss man alle nicht lokalen variablen "nil-en", damit der Garbage Collector greifen kann. Wenn man das nicht macht, hatte man ein memory-leak.

In C wäre es wahrscheinlich ähnlich, dass man globale variablen wieder aus dem Speicher rauslöschen müsste oder so. Jedenfalls hab ich das auch so verstanden, dass man so viele lokale und so wenige globale wie möglich benutzen sollte.
Black Tiger ツ is offline  
Old 05/30/2014, 18:24   #12


 
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
Quote:
Originally Posted by snow911 View Post
Frag mal deinen Compiler, wo er denn den Speicher für die Variablen reserviert.
Es geht um die Position der Deklaration (bzw. Definition) im Code und nicht um den rohen Speicher. Wo die dort liegen kann jedem ja irgendwo egal sein. ;O
Mostey is offline  
Reply


Similar Threads Similar Threads
Java Error Code
11/03/2013 - Minecraft - 2 Replies
Morgen, Ich bekommen wenn ich auf meinem neuem V-Server ( Windows ) die run.bat starte immer ein Error Code von Java http://www7.pic-upload.de/03.11.13/ubj6eh3lr5ob.j pg Das ganze sieht dan so aus. In der run.bat steht folgendes: @echo off
Java Taschenrechner
02/05/2013 - General Coding - 5 Replies
Hallo, Momentan programmiere ich in Netbeans an einem Taschenrechner(mit Buttons). Mit den Grundfunktionen bin ich soweit fertig, nun würde ich noch gerne Knopf einfügen, durch den man das Vorzeichen der eingegeben Zahl ändern kann. Deshalb wollte ich die Zahl mit (-1) multiplizieren: (input1 ist der Name der Variable) private void minusActionPerformed(java.awt.event.ActionEvent evt) { input1=input1*(-1); ...
[S]HTML/Java Code
01/02/2013 - Coders Trading - 10 Replies
Hallo ich suche ein HTML code oder Java wo man zbs elitepvpers.com rein schreiben kann und es dann in der liste angezeigt wird weiß jemand wie man das macht oder wo man das her bekommt ? ich gebe e*Gold dafür wenn es wirklich klappt am besten mit hilfe.
[JAVA] Zurückspringen im Code
12/25/2012 - General Coding - 7 Replies
Hallo! Und zwar habe ich folgende Frage... Ich möchte ein Programm (in Java) programmieren, dass Daten einer Person erfassen kann, sie in einer Textdatei abspeichern/auslesen kann usw.. Wenn ich also im Menü bin.. Person aufnehmen<1> Personen auflisten<2>
[JAVA] Taschenrechner rechnet nicht!
05/11/2010 - General Coding - 1 Replies
Heho, ich sitz wiedermal in Informatik und komm nicht wirklich weiter. Wir arbeiten an einem Taschenrechner, Buttons usw sind auch alle schon vorhanden, jedoch weiß ich nicht wie ich den Wert aus dem Label übernehmen kann und wie ich die Rechen-Operatoren einfügen kann. Wenn mir jemand wenigstens bei einem Rechen-Operatoren helfen könnte wär ich sehr dankbar^^



All times are GMT +1. The time now is 22:47.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.