C# Schleife von 2,4,6,8...n



  • Die Aufgabenstellung ist

    Mit einer do, while und for-Anweisung die Zahlen 0, 2, 4, ..... n auf der Konsole ausgeben

    Das Problem ist ich habe die Variable "k" aber irgendwie gibt es mir keine Zahlen aus, sondern nur den Buchstaben "k" den ich als Variable gesetzt habe! Weiters weiss ich nicht wie ich den "ZweierSchritt" hinzufüge, dami die Zahl immer um 2 anstiegt.

    Die Schleife sollte bis 20 gehen.

    Kann mir einer weiterhelfeN?

    Grüße
    Florian



  • Sollen wir riechen was du für Code hast?
    Zeig uns Code und die Stelle wo du ein Problem hast.



  • using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Diagnostics;

    namespace Figures
    {
    class Program
    {
    static void Main(string[] args)
    {
    Console.CursorVisible = false;
    Console.BackgroundColor = ConsoleColor.Green;
    Console.ForegroundColor = ConsoleColor.Black;
    Console.Clear();

    Random r = new Random();

    int left, top;
    char symbol = '*';
    left = r.Next(Console.WindowWidth);
    top = r.Next(Console.WindowHeight);
    Console.SetCursorPosition(left, top);
    Console.Write(symbol);

    DrawHorizontalLine(2, 4, 6, 'k'); // call method

    ConsoleKeyInfo keyInfo;
    // code for a simple loop of type:
    // do
    // commands, statements: read a keyInfo stroke
    // until keyInfo was "E"
    do
    {
    keyInfo = Console.ReadKey(true);
    Debug.WriteLine(keyInfo.Key);
    switch (keyInfo.Key)
    {
    case ConsoleKey.LeftArrow:
    left = left - 1;
    break;
    case ConsoleKey.RightArrow:
    left = left + 1;
    break;
    case ConsoleKey.UpArrow:
    top = top - 1;
    break;
    case ConsoleKey.DownArrow:
    top = top + 1;
    break;
    default:
    break;
    }
    Console.SetCursorPosition(left, top);
    Console.Write(symbol);

    } while (keyInfo.Key != ConsoleKey.Escape);

    Console.ReadKey();

    }

    static void DrawHorizontalLine(int left, int top, int length, char c)
    {
    Console.SetCursorPosition(left, top);
    int k;
    for (k = 0; k <= 20;k++)
    {
    Console.Write(c);
    }
    } // end DrawHorizontalLine

    } // end class Program
    } // end namespace

    Das ist der Code, einmal wo isch ein Zeichen habe wo ich mit den Mauspfeilen dieses Zeichen bewegen kann, wie bei Snake2. Das andere sollte die Zahlen 2,4,6,8,10...n in einem "Random" Modus ausgeben, was es im Moment nicht macht.



  • Florian21 schrieb:

    Weiters weiss ich nicht wie ich den "ZweierSchritt" hinzufüge, dami die Zahl immer um 2 anstiegt.

    Das ist jetzt nicht ernstgemeint, oder? Was muß man zu einer Variablen hinzuaddieren um sie um 2 zu erhöhen?

    a) 1
    b) 2
    c) 3
    d) ich bin zu dumm für Mathe.



  • using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Diagnostics;

    namespace Figures
    {
    class Program
    {
    static void Main(string[] args)
    {
    Console.CursorVisible = false;
    Console.BackgroundColor = ConsoleColor.Black;
    Console.ForegroundColor = ConsoleColor.Red;
    Console.Clear();

    Random r = new Random();

    int left, top;

    left = r.Next(Console.WindowWidth);
    top = r.Next(Console.WindowHeight);
    Console.SetCursorPosition(left, top);

    DrawHorizontalLine(2, 4, 6, 'k'); // call method

    ConsoleKeyInfo keyInfo;
    // code for a simple loop of type:
    // do
    // commands, statements: read a keyInfo stroke
    // until keyInfo was "E"
    do
    {
    keyInfo = Console.ReadKey(true);
    Debug.WriteLine(keyInfo.Key);
    switch (keyInfo.Key)
    {
    case ConsoleKey.LeftArrow:
    left = left - 1;
    break;
    case ConsoleKey.RightArrow:
    left = left + 1;
    break;
    case ConsoleKey.UpArrow:
    top = top - 1;
    break;
    case ConsoleKey.DownArrow:
    top = top + 1;
    break;
    default:
    break;
    }
    Console.SetCursorPosition(left, top);

    } while (keyInfo.Key != ConsoleKey.Escape);

    Console.ReadKey();

    }

    static void DrawHorizontalLine(int left, int top, int length, char c)
    {
    Console.SetCursorPosition(left, top);
    int k;
    for (k = 2; k <= 20; k++)
    {
    Console.Write(c);
    }
    } // end DrawHorizontalLine

    } // end class Program
    } // end namespace

    So siehts Momentan aus, gibt aber immer noch nur das "k" 10 mal aus...



  • Ja klar hab ich das mit k+2 versucht, jedoch klappte es nicht, es kommt immer eine Fehlermeldung...



  • Florian21 schrieb:

    Console.Write(c);

    In k steht deine Zahl, also warum gibst du c aus?



  • Florian21 schrieb:

    Ja klar hab ich das mit k+2 versucht, jedoch klappte es nicht, es kommt immer eine Fehlermeldung...

    Wenn Du nichtmal weist das die Schreibweise k = k + 1 lautet solltest du DRINGEND mal ein Anfängertutorial durcharbeiten.



  • Ah du scheisse.

    vertippt!

    Vielen Dank.

    Nun hätte ich noch eine Frage, wie mache ich das jetzt in Zweier-Schritten?



  • Florian21 schrieb:

    Ah du scheisse.

    vertippt!

    Vielen Dank.

    Nun hätte ich noch eine Frage, wie mache ich das jetzt in Zweier-Schritten?

    Du verarschst uns doch, oder?



  • Ja sry, aber ich mach das erst seit 2 Wochen und das 2h in der Woche wegen der Schule, der Lehrer hat es uns so erklärt!

    Es klappt nun. Vielen Dank Leute.



  • Scheiß egal wie lange du das schon machst, du solltest doch vom rein Logischen Denkvermögen wissen wie man einer Zahl 2 hinzuaddiert?!



  • loks schrieb:

    Florian21 schrieb:

    Nun hätte ich noch eine Frage, wie mache ich das jetzt in Zweier-Schritten?

    Du verarschst uns doch, oder?

    nein 😃


Anmelden zum Antworten