V
Skym0sh0 schrieb:
Die sind alle OK. Mir gehts auch weniger um eine dieser 3 Schreibweisen, oder ob und wie die konsistent zueinander sind. Mir geht es ganz pragmatisch um Lesbarkeit.
Sowas ist zwar wegen seiner Einfachheit noch sehr gut zu lesen, aber bei etwas mehr Komplexität geht da einem ganz schnell die Luft ab.
#include <iostream>
int main(int argc, char * argv[]) {
int a,b,c,d;
std::cout<<"Gib a ein: ";std::cin>>a;
std::cout<<"Gib b ein: ";std::cin>>b;
std::cout<<"Gib c ein: ";std::cin>>c;
std::cout<<"Gib d ein: ";std::cin>>d;
int e=a+b;int f=c+d;int g=e*f;
std::cout<<std::endl<<"Ergebnis:"<< g*g << std::endl;
return SUCCESS;
}
Sieht gepresst aus, man könnte bei ungenauem Hingucken etwas Übersehen, etc...
Jo, gepresst. Auch für mich sehr häßlich.
Skym0sh0 schrieb:
Das hier ist auf jedenfall gut lesbar, an jeder Stelle und für jeden Programmierer (Details, wie das std:: oder mal en Leerzeichen mehr oder weniger sind dabei offensichtlich egal):
#include <iostream>
int main(int argc, char * argv[])
{
int a;
int b;
int c;
int d;
std::cout << "Gib a ein: ";
std::cin >> a;
std::cout << "Gib b ein: ";
std::cin >> b;
std::cout << "Gib c ein: ";
std::cin >> c;
std::cout << "Gib d ein: ";
std::cin >> d;
int e = a + b;
int f = c + d;
int g = e * f;
std::cout << std::endl << "Ergebnis: " << g*g << std::endl;
return 0;
}
Jo, VIEL besser.
Aber
#include <iostream>
int main(int argc, char * argv[])
{
int a;
int b;
int c;
int d;
std::cout<<"Gib a ein: ";
std::cin>>a;
std::cout<<"Gib b ein: ";
std::cin>>b;
std::cout<<"Gib c ein: ";
std::cin>>c;
std::cout<<"Gib d ein: ";
std::cin>>d;
int e=a+b;
int f=c+d;
int g=e*f;
std::cout<<std::endl<<"Ergebnis: "<<g*g<<std::endl;
return 0;
}
ist mir leiber. Türlich (normalerweise) eine eigene Zeile pro Zweck. Und zwischen größeren Sinn-Einheiten auch mal eine Leerzeile.
Wobei gerade da zu überlegen wäre
#include <iostream>
int main(int argc, char * argv[])
{
int a; std::cout<<"Gib a ein: "; std::cin>>a;
int b; std::cout<<"Gib b ein: "; std::cin>>b;
int c; std::cout<<"Gib c ein: "; std::cin>>c;
int d; std::cout<<"Gib d ein: "; std::cin>>d;
int e=a+b;
int f=c+d;
int g=e*f;
std::cout<<std::endl<<"Ergebnis: "<<g*g<<std::endl;
return 0;
}
Also gleichartigen Code ausnahmsweise mal anders zu formatieren, damit die Gleicharigkeit offensichtlich wird, der Code wird damit "langweiliger" und langweiliger Code ist supi, da verstecken sich weniger Fehler. (Ja, ich weiß, man denkt an böse Codeduplikatiohn und
int a=gibEin<int>('a');
).
Kann mich nicht daran erinnern, daß mal jemend meinen geposteten Code angemeckert hätte, es wären zu wenige Leerzeichen drin, vielleicht waren mal Marc++us zu wenige Leerzeilen drin.
Wenn Nube-Code zu unleserlich ist, liegt's vielleicht nicht an den Leerzeichen, sondern daß der Code selber umständlich ist. So Laufbedingungen mit 5 && oder || drin, wo mir schon eins davon Bauchweh bereitet, und zwei davon habe ich eigentlich nie. Oder ellenlange Rechnungen ohne aussagekräftige Zwischenergebnisse, ich würde kaum V=PI*(d/2)*(d/2)*h; schreiben, wenn V=G*h; reicht.
edit: Warum ist das return nicht abgesetzt, hat ja nix mit dem Rest zu tun?