NOOB ALERT C# Frage

Shizzo1811

Active Member
26 Aug 2011
360
53
#1
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            int zahl1;
            int zahl2;

            //Fragen
            Console.WriteLine("Bitte gebe eine zahl an !");
            zahl1 = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("Bitte gebe eine Zweite Zahl an");
            zahl2 = Convert.ToInt32(Console.ReadLine());

            //ints
            int end1;
            int end2;
            int end3;
            int end4;
            end1 = zahl1 + zahl2;
            end2 = zahl1 - zahl2;
            end3 = zahl1 * zahl2;
            end4 = zahl1 / zahl2;

            //Ausgabe
            Console.WriteLine(zahl1 + zahl2 = end1);
            Console.WriteLine(zahl1 + zahl2 = end2);
            Console.WriteLine(zahl1 + zahl2 = end3);
            Console.WriteLine(zahl1 + zahl2 = end4);

            Console.ReadKey();

        }
    }
}
Warum kann ich das so nicht machen ??

Die linke Seite einer Zuweisung muss eine Variable, eine Eigenschaft oder ein Indexer sein.

Verstehe auch den Fehler nicht.

möchte einfach das

5 + 5 = 10 Ausgegeben wird.
könnte zwar einfach
Console.WriteLine("5 + 5 " = end1);
machen aber möchte das wie oben machen.
 

Shizzo1811

Active Member
26 Aug 2011
360
53
#3
Code:
            Console.WriteLine(zahl1 + "+"+ zahl2 + "=" + end1);
            Console.WriteLine(zahl1 + "-" + zahl2 + "=" + end2);
            Console.WriteLine(zahl1 + "*" + zahl2 + "=" + end3);
            Console.WriteLine(zahl1 + "/" + zahl2 + "=" + end4);
Das wars danke :O
leicht brainafk gewesen dann.
Danke dir
 
12 May 2013
602
137
#8
h3h3y9 h3h3y9

"Console.WriteLine("{0} + {1} = {2}", zahl1, zahl2, end4);"

das geht aber besser.

Console.WriteLine($"{zahl1} + {zahl2} = {zahl4}");

btw mach lieber:

Code:
int zahl1 = int.Parse(Console.ReadLine());
wenn du Convert.ToInt32 machst und jemand a eingibt bekommst du trotzdem ne zahl raus
Nein bekommst du nicht. System.FormatException: "Input string was not in a correct format."
Kannst dann aber ne exception machen.
 

Logxn

Honorable
22 Jul 2016
1,463
1,581
#9
Nein bekommst du nicht. System.FormatException: "Input string was not in a correct format."
Kannst dann aber ne exception machen.
war nur ne vermutung.
dachte wär das gleiche wie wenn man einfach (int) davor casted.
mein fehler.

tryparse oder parse meiner meinung immernoch die beste methode zu verwenden
 

Logxn

Honorable
22 Jul 2016
1,463
1,581
#11
Würde es an seiner Stelle so lassen und dann ne exception noch einfügen, damit er das noch direkt lernen kann.
https://msdn.microsoft.com/de-de/library/f02979c7(v=vs.110).aspx

kann er auch so machen, und muss keine exception riskieren.

Achtung Pseudocode!!! (nicht dass du mich noch dafür anscheißt dass da irgendwo n syntax fehler oder so drinn ist)
Code:
int i;
if(!Int32.TryParse(Console.ReadLine(), out i)
{
   Console.WriteLine($"Sorry, du hast keine Zahl angegeben.);
   return;
}
spart zeilen, ist effektiv
 
12 May 2013
602
137
#12
https://msdn.microsoft.com/de-de/library/f02979c7(v=vs.110).aspx

kann er auch so machen, und muss keine exception riskieren.

Achtung Pseudocode!!! (nicht dass du mich noch dafür anscheißt dass da irgendwo n syntax fehler oder so drinn ist)
Code:
int i;
if(!Int32.TryParse(Console.ReadLine(), out i)
{
   Console.WriteLine($"Sorry, du hast keine Zahl angegeben.);
   return;
}
spart zeilen, ist effektiv
Es führen immer alle Wege nach Rom.
Mir ging es darum, dass er es so noch direkt lernen kann, da er noch am Anfang steht.
Danke, dass du es als Pseudocode deklariert hast, hätte ich sonst nicht erkannt, obwohl ich das damals alles in der Schule gelernt habe.
 

Logxn

Honorable
22 Jul 2016
1,463
1,581
#13
Ja, und du nimmst gern den längsten?

Ich gestalte meinen Code so effektiv wie möglich.
Wenn ich für alles try{}catch(Exception e){} machen müsste, sieht das einfach scheiße aus.

er soll einfach wissen das TryParse ihm nen bool zurückgibt und er mit ner if abfrage einfach checken kann obs gefailed ist ohne dass er sich um exceptions kümmern muss

aber ja hast recht... ich kann die einfachsten c# basics nicht :wink:
https://github.com/Logxn/PokemonGo-Bot
 
12 May 2013
602
137
#14
Ja, und du nimmst gern den längsten?

Ich gestalte meinen Code so effektiv wie möglich.
Wenn ich für alles try{}catch(Exception e){} machen müsste, sieht das einfach scheiße aus.

er soll einfach wissen das TryParse ihm nen bool zurückgibt und er mit ner if abfrage einfach checken kann obs gefailed ist ohne dass er sich um exceptions kümmern muss

aber ja hast recht... ich kann die einfachsten c# basics nicht :wink:
https://github.com/Logxn/PokemonGo-Bot
Raffst du es nicht? Was er gepostet hat ist eine typische Einstiegsaufgabe. Früher oder später wird er auch ne exception machen müssen.
Ich habe gesagt, dass er es JETZT so üben kann, damit er es lernt und nicht das er es IMMER so machen muss.
Lesen -> verstehen -> antworten.
 

Logxn

Honorable
22 Jul 2016
1,463
1,581
#15
Raffst du es nicht? Was er gepostet hat ist eine typische Einstiegsaufgabe. Früher oder später wird er auch ne exception machen müssen.
Ich habe gesagt, dass er es JETZT so üben kann, damit er es lernt und nicht das er es IMMER so machen muss.
Lesen -> verstehen -> antworten.
Doch ich weiß was du meinst.
Aber es ist trotzdem bad practice.
Lerns gleich richtig oder lass es bleiben.