Entwickler-Ecke

C# - Die Sprache - Verzweigung - "if (bool'sche Bedingung)" - Anwendung?


Downhilljunkie - Sa 10.10.09 10:30
Titel: Verzweigung - "if (bool'sche Bedingung)" - Anwendung?
Hey leute.

Wie kann ich im Csharp den Befehl if (1700 <= x < 2000) ? das funktioniert bei mir nicht wirklich.


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            string temp;
            int meter;
            Console.WriteLine("Geben Sie die in 12 Minuten gerannte Strecke ein");
            temp = Console.ReadLine();
            meter = Convert.ToInt16(temp);
            if (meter >= 2200)
            {
                Console.WriteLine("Ihre Körperliche Fitness ist sehr gut");
            }
            else
            {
              <span style="color: red">  if (1700 <= meter >2200)</span>
                {
                    Console.WriteLine("Ihre Körperliche Fitness ist gut");
                }
                else
....


JüTho - Sa 10.10.09 10:46

Hallo und :welcome:

Zunächst bitte ich dich, bei deinen Fragen an die Leser zu denken: Diese sollen dir helfen, also solltest du ihnen die Hilfe erleichtern.

1. Die Diskussion verlangt eine sinnvolle Überschrift. "Probleme" hat jeder, der hier etwas fragt, gleichgültig ob es um Anfänger oder Fortgeschrittene geht. Was für ein Problem hast du? Richtig, eine Frage zu einer erweiterten if-Prüfung.

2. Code ist als solcher zu markieren, dann ist er richtig lesbar. Das kannst du auch nachträglich erledigen: den Beitrag mit dem Schere-Button zum Editieren öffnen, Überschrift ändern, dann Text markieren, "Bereiche" öffnen, C# auswählen, Plus-Button, Absenden.

Zur Sache: Du musst natürlich die Syntax korrekt verwenden. if verlangt (in Klammern) eine Bedingung, die mit passenden Operatoren erstellt werden. Es gibt aber keinen booleschen Operator mit drei Argumenten à la "a <= b < c".

Eine solche if-Prüfung ist aufzuteilen. Dann stellst du fest, dass es eigentlich zwei Bedingungen sind, die durch einen booleschen Operator AND oder OR zu verknüpfen sind. Also entspricht das etwa dieser Bedingung:

Quelltext
1:
wenn x >= 1700 und wenn x < 2000                    

In C# heißt das "und" '&' oder '&&', das "oder" heißt '|' bzw. '||'. In der Praxis wird fast immer das doppelte Zeichen verwendet. Erläuterungen findest du in der SDK-Doku/MSDN oder auch unter OpenBook VC# 2.4 Operatoren [http://openbook.galileocomputing.de/visual_csharp/visual_csharp_02_004.htm#mjf35aef781dc462c1c11e8c8b864b3f2c].

Damit hast du auch gleich einen Tipp für einführende Lektüre. Jürgen

PS. int ist Int32, nicht Int16. Anstelle von Convert.To-Methoden ist int.Parse oder noch besser int.TryParse vorzuziehen; was passiert denn bei einer Falscheingabe wie "wwwe" (nur vertippt statt "2223")?

/Edit
Oh Mann, "und" und "oder" verwechselt, und das mir.


Downhilljunkie - Sa 10.10.09 10:58

Tausend Dank!!! Das hilft mir sicherlich weiter. Ja, die Unterlagen hab ich mir schon angesehen, bin aber nicht wirklich schlau daraus geworden. Bin nicht so der Informatik Typ


UGrohne - Sa 10.10.09 11:15

user profile iconDownhilljunkie hat folgendes geschrieben Zum zitierten Posting springen:
Tausend Dank!!! Das hilft mir sicherlich weiter. Ja, die Unterlagen hab ich mir schon angesehen, bin aber nicht wirklich schlau daraus geworden. Bin nicht so der Informatik Typ

Wie wärs noch die Bitten von JüTho zu beachten? Also ordentlicher Titel und Code formatieren. Dann kannst Du Dich mit der Bedienung im Forum gleich mal vertraut machen.


JüTho - Sa 10.10.09 12:21

user profile iconUGrohne hat folgendes geschrieben Zum zitierten Posting springen:
Wie wärs noch die Bitten von JüTho zu beachten?

Das bezieht sich nicht nur auf die erste, sondern auch auf die zweite Bitte. Es sollen nicht einzelne Zeilen farbig sein, sondern der gesamte Text als Code erkennbar, nämlich mit Schlüsselwörtern und Einrückungen:

C#-Quelltext
1:
2:
3:
4:
5:
6:
namespace ConsoleApplication2
{
   class Program 
   { /* usw. */
   }
}

Jürgen