Wenn, dann

paulpils

Cadet 2nd Year
Registriert
Sep. 2017
Beiträge
20
Hey Leute. Seit kurzem programmiere ich. (C#)
Nun wollte ich ein "Programm" schreiben wo ich aufgefordert werde das richtige Passwort (12345) eingeben muss, wenn das passwort falsch ist soll die aussage "Passwort falsch" kommen wenn das Passwort richtig ist soll "Passwort richtig" kommen. Ich habe es schon fertig geschrieben aber irgendwie funktioniert es nicht kann mir jemand helfen und sagen was ich falsch
gemacht habe? Hier ist der Code:
PHP:
using System;
namespace Passwort
	{
		class Program
		{
			public static void Main()
			{
					Console.WriteLine("Geben sie bitte ihr Passwort ein");
					

					
					string eingabe;
					if (eingabe = ("12345"));
					{ 
					Console.WriteLine("Passwort richtig");
					}
					else
					{
					Console.WriteLine("Passwort falsch");
					}
					
			}
		}
		
}

Ps: Es tut mir leid falls ich schwere Fehler gemacht habe aber ich programmiere noch nicht lange.

Edit: Ich kompiliere und lese das Programm mit Visual Studio also mit dem Developer Command Prompt aus.
 
Zuletzt bearbeitet:
Nun, es fehlt die tatsächliche Eingabe des Benutzers.
Du hast einfach nur einen nicht initialisierten string 'eingabe', der ist so natürlich nutzlos.
 
Code:
 class Program
    {
        static string eingabe;
        static void Main(string[] args)
        {
            Console.WriteLine("Geben sie bitte ihr Passwort ein");

            eingabe = Console.ReadLine();

            if (eingabe == ("12345")) 
            {
                Console.WriteLine("Passwort richtig");
                Console.ReadLine();
            }
		    else
			{
                Console.WriteLine("Passwort falsch");
            }

            Console.ReadLine();
        }
    }

das sollte funktionieren :)

Um eine Console Application vor dem schließen zu bewahren nach dem start musst du im Main Block immer ein Console.ReadLine() angeben.
 
Zuletzt bearbeitet:
Irgendwie klappt das bei mir nicht Progr.PNG
 
Capture.PNG

Bei mir gehts
 
Vergleich nochmal die Zeile mit Console.ReadLine() in Gotenks Beitrag. Kleiner Vertipper. ;)

Aber Respekt das du nich einfach Copy&Paste benutzt hast.
 
noch ein Hinweis: Strings vergleicht man nicht mit "==" sondern mit "equals"
 
In C# geht das auch mit "==". In Java ist das ein Problem.
 
Würde bei Gotenks Code noch folgendes ändern:

string eingabe = Console.ReadLine();

Ich würde besonders bei Anfängern darauf achten, dass sie Variablen richtig zuweisen und deklarieren.

= steht für eine Zuweisung, und ist nicht mit dem Mathematischen = vergleichbar.

int x = 5
x = x + 1

und == ist der Vergleich, der immer in einen bool aufgelöst wird, also immer true oder falsch ergibt

if (x == 6) {....}
 
Darlis schrieb:
In C# geht das auch mit "==". In Java ist das ein Problem.

Klar, das ist mir bewusst. Dennoch ist es schlecht, weil er in anderen Sprachen damit auf die Schnauze fällt.
Wenn jemand Anfänger ist und es gerade lernt, dann doch am Besten gleich richtig.

In Java ist es kein wirkliches Problem, wenn man weiß, wann man "==" bei Strings anwenden kann und wann nicht. Equals funktioniert aber immer wie erwartet. Deshalb mein Einwand.

https://javabeginners.de/String/Strings_vergleichen.php
 
Dein Einwand ist nicht wirklich angebracht, denn in den meisten Sprachen wird auch für String-Vergleiche der normale Vergleichsoperator verwendet, insofern gibt es hier kein universelles "Richtig oder Falsch" und man fällt auch nicht automatisch in anderen Sprachen auf die Schnauze.

In C# ist ein String-Vergleich mit == richtig und in diesem Thread geht es ja nicht um Java, C, Python oder PowerShell.
 
Zuletzt bearbeitet:
rg88 schrieb:
Dennoch ist es schlecht, weil er in anderen Sprachen damit auf die Schnauze fällt.
Equals gibt es in vielen anderen Sprachen nicht. Interessanter Vergleich: Nur C# und VB kennen "Equals" (das hast du auch noch falsch geschrieben), in Java ist es "equals".

TL;DR: Du würdest so oder so auf die Schnauze fallen, wenn du die Syntax von Sprache A in Sprache B verwenden willst.
 

Ähnliche Themen

W
  • Gesperrt
  • Frage
2 3
Antworten
45
Aufrufe
2.636
  • Gelöst
2
Antworten
28
Aufrufe
1.627
Zurück
Oben