C# Variable vor Console.WriteLine?

3 Antworten

Zeilenumbrüche spielen bei C-artiger Syntax (also auch bei C#) keinerlei inhaltliche Rolle. Sie dienen nur dem menschlichen Leser dazu, die Übersicht einigermaßen zu behalten.

(Anmerkung: Anders ist es mit "Präprozessor-Direktiven", in C# z. B. #If ... #End If oder #Region, aber das hat mit der Sprache selbst direkt nichts zu tun.)

Die einzelnen Befehle werden mit Semikolon ; voneinander getrennt und mit geschweiften Klammern {} gruppiert. (Dadurch kann man an Stellen, an denen sonst nur ein einziger Befehl stehen kann, wie nach if (bedingung), mehrere Befehle schreiben, die dann hintereinander ausgeführt werden.)

++erg; dient hier nur dazu, die Variable erg um 1 zu erhöhen und hat nichts mit Console.WriteLine() zu tun.

Vielen Dank, ich kann mit dieser Antwort sehr viel anfangen!!!

0

Du hast, so wie es aussieht, mehrere Befehle, sofern deine Bedingung zutrifft. D.h. das Inkrementieren der Variable "erg" ist einfach durch die Programmlogik erwünscht. 

Ich würde vermuten, das Programm zählt einfach, wie viele Fragen jemand richtig beantwortet. Bei jeder richtigen Frage wird "erg" inkrementiert - das kennzeichnen die "++" - und zum Schluss wird "erg" ausgegeben. 

Hoffe das ist verständlich. 

Danke vielmals! Genau so ist es. Es wird gezählt, wie viele Fragen richtig beantwortet wurden! Was mir noch nicht ganz klar ist: ich habe 3 Anweisungsblöcke (hoffentlich stimmt das Fachwort...), also drei mal if. Wie, oder wodurch sind die drei ++erg voneinander abhängig, bzw. miteinander verbunden? Drei Rechenoperationen werden unabhängig voneinander durchgeführt, die ++erg s sind aber miteinander verknüpft? Hoffentlich ist meine Frage verständlich genug...

0
@Ionenfreund

Bitte den ganzen Quelltext posten, sonst ist folgende Antwort vielleicht nicht richtig: 

Je nachdem, welche Programmiersprache du verwendest, gibt es verschiedene Arten von Variabeln - private, öffentliche, globale (private, public, global). Sofern du eine globale Variabel definiert hast - und davon gehe ich jetzt mal aus -  greift jede Schleife auf die SELBE Variabel zu. 

Stell es dir vor wie einen Eimer, der von drei Menschen nacheinander gefüllt wird, sofern diese Menschen Wasser, und keinen Wein, tragen. 

0

; beendet eine Zeile. Danach kommt immer eine neue Anweisung, auch wenn du den Zeilenumbruch vergisst. 

(D.h. das vor dem Console... hat mit der Ausgabe nix direkt zu tun.)

D A N K E für die schnelle Antwort !!! :-)

0

C#: Punktewert zuweisen (TEIL2)?

Wie in meinem vorherigen Post geschrieben, möchte ich einem Spieler einen bestimmten Punktewert zuweisen, jedoch tauchen bei der Zuweisung des Wertes zum Array Probleme auf:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace einspieler10000

{

   class Program

   {

       static void Main(string[] args)

       {

           int[] Spieler;

           int i = 0;

           int x= i;

           int [] WürfelAnzahl;

           int Anzahl = 6;

           WürfelAnzahl = new int[Anzahl];

           int[] Würfel;

           int WürfelNummer = 6;

           

           int y = 0;

           int[] Punktestand;

           Punktestand = new int[i];

           int Überprüfung = 0;

           string GutgeschriebenerWürfel;

           int NeuesSpiel = 0;

           

           int Punkte = 0;

           

        

           Console.WriteLine("Wieviele Spieler?");

           i = Convert.ToInt32(Console.ReadLine());

           Spieler = new int[i];

           x = 0;

           while (x < i)

           {

              

               ...

               

               

               Punkte = 0;

               Console.Clear();

               Console.WriteLine("Spieler {0} ist an der Reihe", x);

              

               ...

               Console.WriteLine("\n");

               Console.WriteLine("ENTER zum Würfeln...");

               Console.ReadKey();

               while (y < WürfelNummer)

               {

                   Random random = new Random();

                   Würfel[y] = random.Next(1, 7);

                   Console.WriteLine("Würfel" + (y + 1) + " = {0}", Würfel[y]);

                   if (Würfel[y] == 1)

                   {

                       Console.WriteLine("= 100 Punkte");

                       Würfel[y] = 100;

                       Überprüfung++;

                   }

                   if (Würfel[y] == 5)

                   {

                       Console.WriteLine("= 50 Punkte");

                       Würfel[1] = 50;

                       Überprüfung++;

                   }

                   if (Würfel[y] >= 5)

                   {

                       Würfel[y] = 0;

                   }

                   if (Würfel[y] <= 1)

                   {

                       Würfel[y] = 0;

                   }

                   System.Threading.Thread.Sleep(337);

                   y++;

               }

              ...

               

               

                   Console.WriteLine("Welcher Würfelwert soll gutschrieben werden?");

                   GutgeschriebenerWürfel = Convert.ToString(Console.ReadLine());

                   if (GutgeschriebenerWürfel == "Würfel1")

                   {

                       Punkte = +Würfel[0];

                   }

                  ...

                   Punktestand[x] = Punkte; //DA IST DER FEHLER IRGENDWO

           

              

               x++;

           }

          

       }

      

   }

}

...zur Frage

JAVA - Median berechnen aus 5 Variablen?

Huhu, ich bin grade an einem Programm, welches den Median aus 5 Integern ausgeben soll. Ich habe dazu einen Lösungsansatz, allerdings ist dieser nicht ganz aufgegangen. Mein Code bezieht sich bisher nur darauf die kleinste der 5 Zahlen auszugeben. Mein Ziel ist es die drei kleinsten Zahlen in die richtige Reihenfolge zu bringen und die dritte als Median auszugeben. Hat jemand eine Idee was ich falsch gemacht habe? Hier mein Code:

public class Median3 { public static void main(String[] args) {

if (args.length != 5) {
System.out.println("ERROR");
} else {
int a = Integer.parseInt(args[0]);
    int b = Integer.parseInt(args[1]);
    int c = Integer.parseInt(args[2]);
    int d = Integer.parseInt(args[3]);
    int e = Integer.parseInt(args[4]);
int n0 = 0; 
int n1 = 0;
int n2 = 0;
int n3 = 0;
int n4 = 0;
int median;
    if (a <= 0 || b <= 0 || c <= 0 || d <= 0 || e <= 0) {
    System.out.println("ERROR");    
    } else {
        if (a == b || a == c || a == d || a == e || b == c || b == d || b == e || c == d || c == e || d == e){
        System.out.println("ERROR");
        } else {
            if(a > b) {
            n0 = b;
            }
            else if(a > c && c < n0) {
            n0 = c;
            }
            else if(a > d && d < n0) {
            n0 = d;
            }
            else if(a > e && e < n0) {
            n0 = e;
            }
            else {
            n0 = a;
            }
            System.out.println(n0);
        }
    }
}
//System.out.println(median);
}

}

...zur Frage

Hilfe bei C# Taschenrechner?

Hallo Community, ich programmiere derzeit einen Taschenrechner in C# für den Unterricht, und bin an folgendem hängengeblieben, und zwar brauche ich die vier Grundrechenarten und Quadratwurzel & Potenzen. Die Grundrechenarten und Potenzen hab ich hinbekommen, aber die Quadratwurzeln bringen mich zum verzweifeln. Nämlich verlangt der Rechner zwei Zahlen, obwohl man für die Wurzeln ja bekanntlich nur eine benötigt.

static void Main(string[] args) { int num_1; int num_2; string op;

        Console.ForegroundColor = ConsoleColor.Cyan;

        Console.WriteLine("Gib die erste (ganze) Zahl ein!");
        num_1 = Convert.ToInt32(Console.ReadLine());

        Console.WriteLine("Gib die zweite (ganze) Zahl (oder Potenz) ein!");
        num_2 = Convert.ToInt32(Console.ReadLine());

        while (num_2 <= 0)
        {
        Console.WriteLine("Gib die zweite (ganze) Zahl (oder Potenz) nochmal ein!");
        num_2 = Convert.ToInt32(Console.ReadLine());
        }
        Console.WriteLine("Gib einen Operator an. (+, -, *, /, p, s)");
        op =(Console.ReadLine());

        if (op.Equals("+"))
        {
            Console.WriteLine("Dein Ergebnis lautet:");
            Console.WriteLine(num_1 + num_2);
        }
        if (op.Equals("-"))
        {
            Console.WriteLine("Dein Ergebnis lautet:");
            Console.WriteLine(num_1 - num_2);
        }
        if (op.Equals("*"))
        {
            Console.WriteLine("Dein Ergebnis lautet:");
            Console.WriteLine(num_1 * num_2);
        }
        if (op.Equals("/"))
        {
            Console.WriteLine("Dein Ergebnis lautet:");
            Console.WriteLine(num_1 / num_2);
        }
        if (op.Equals("p"))
        {
            Console.WriteLine("Dein Ergebnis lautet:");
            Console.WriteLine(Math.Pow(num_1, num_2));
        }
        if (op.Equals("s"))
        {
            Console.WriteLine("Dein Ergebnis lautet:");
            Console.WriteLine(Math.Sqrt(num_1));
        }
        Console.ReadLine();
    }

}

}

Hier wär der Quellcode, bin leider ein absoluter Anfänger also bitte nehmt es mir nicht übel. Bin auch für Verbesserungsvorschläge offen. Danke :)

...zur Frage

Wer findet den Fehler??habe hier versucht den xcopy Befehl der cmd in ein c# prog mit vs17 zu implementieren jedoch klappt das nicht so wie Ichs will :(?

using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;


namespace Cto
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.BackgroundColor = ConsoleColor.DarkBlue;
            Console.ForegroundColor = ConsoleColor.White;
            Console.Clear();
            string s1;
            string s2;
            Console.WriteLine("Welcome to Cto your Synchronize tool");
            Console.Write("Source Path:");
            s1 = Console.ReadLine();
            //Console.Clear();
            //Console.WriteLine("Welcome to Cto your Synchronize tool");
            Console.Write("Target Path:");
            s2 = Console.ReadLine();
          if(File.Exists(s1)== false)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("Source Path isn't existing");
                Console.WriteLine("Retry Y/N");
                /*if (Console.ReadKey().Key == ConsoleKey.Y)
                {
                    Console.Clear();
                    Main(null);
                }
                else
                {
                    Environment.Exit(0);
                }
            }
          if(File.Exists(s2)== false)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("Target Path isn't existing");
                Console.WriteLine("Retry Y/N");
                if (Console.ReadKey().Key==ConsoleKey.Y)
                {
                    Console.Clear();
                    Main(null);
                }
                else
                {
                    Environment.Exit(0);
                }*/

            }
          String Com = "xcopy /D /E /Y /I " + @"" + s1 + " " + @"" + s2;
            Process cmd = new Process();
            cmd.StartInfo.FileName = "xcopy";
            cmd.StartInfo.Arguments =  Com;
            Console.WriteLine(cmd.StartInfo.Arguments);
            cmd.StartInfo.RedirectStandardError = true;
            cmd.StartInfo.RedirectStandardOutput = true;
            cmd.StartInfo.RedirectStandardInput = true;
            cmd.StartInfo.UseShellExecute = false;
            cmd.Start();
            Console.ReadLine();
         
        }
    }
}
    

hier ein weiteres Problem der findet nur ordner keine Laufwerke vllt. war file.exist die falsche Methode hier wären tipps auch sehr willkommen

...zur Frage

Ein Fehler im Programmcode! Kann mir jemand helfen?

Hallo :) Ich habe vor einigen Tagen begonnen, mich der Programmiersprache "C#" zu widmen. Dazu nutze ich das Buch "Schrödinger programmiert C#". Momentan befasse ich mich mit dem booleschem Ausdruck und den If- Anweisungen. Im Buch sind diesbezüglich vorgeschriebene Codes vorhanden, die man einfach in "Visual Studio" abtragen kann, um mit ihnen weiterzuarbeiten. Der vorgegebene Code funktioniert allerdings nicht. Ich poste diesen mal:

(vom Programm vorgegeben:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;)

namespace ConsoleApp6

{

class Program

{
    static void Main(string[] args)
    {
        Console.WriteLine("Freundin da? (true/false):");
        bool freundinDa = bool.Parse(Console.ReadLine());
            if (freundinDa == true)
        {
            Console.WriteLine("Kanal auf dem Titanic läuft:");
            int kanal = int.Parse(Console.ReadLine());
            Console.WriteLine("Heute sehen wir Titanic. Kanal: " + kanal);
        }
            else
        {
            Console.WriteLine("Horror (true) oder Action (false)?");
            bool horror = bool.Parse(Console.ReadLine());
            if (horror)
                Console.WriteLine("Heute wird es gruselig!");
            else
            {
                Console.WriteLine("Actionfilme sind auch nice!");
            }
        }
        Console.ReadKey();
    }       
}

}

Die Zeile " bool freundinDa = bool.Parse(Console.ReadLine()); " ist anscheinend fehlerhaft... Zumindest zeigt Visual Studio dies an.

Kann mir jemand helfen? Habe ich einfach einen Schreibfehler? Ich bin wie gesagt noch Anfänger und obwohl ich schon das Internet durchkämmt habe, konnte ich nichts Hilfreiches finden :( Auch muss ich zugeben, dass ich nichts mit diesem ".Parse"- Befehl anfangen kann, da er nicht im Vorfeld des Buches erklärt wurde.

Ich bin über jede Idee und helfende Hand dankbar, da ich eigentlich gern weitermachen würde. Der vorherige Stoff ging regelrecht "runter wie Öl" und es hat auch Spaß gemacht, aber momentan komme ich so nicht voran.

In diesem Sinne: Schon einmal Console.WriteLine ("Danke im Voraus!");

:D

...zur Frage

Ist dieser Quelltext korrekt?

public class Main.java {

  public static void main (String[] args) {

String output ;

for (int i=7; i<=4263; i++) {

  if (i%3==0 && i%7==0) {

    output="FooBar";

  }

  else if (i%3==0) {

    output="Foo";

  }

  else if (i%7==0) {

    output="bar" ;

  }

  else {

    output= Integer.toString (i);

  }

  System.out.println (output);

}

  }

}

...zur Frage

Was möchtest Du wissen?