• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Kalkulator odmawia posłuszeństwa

VPS Starter Arubacloud
0 głosów
128 wizyt
pytanie zadane 1 marca 2021 w C# przez JerzykPolski Nowicjusz (150 p.)

Witam wszystkich. Miałem zamiar napisać kalkulator w C#. Program działa, niestety nie tak jak bym chciał. Po pobraniu pierwszej liczby nie chce przejść dalej. Czy moglibyście wskazać co zrobiłem źle?

using System;

namespace HelloWorld
{
    class Program
    {
        static void Main(string[] args)
        {
            początek:
            int liczba1;
            int liczba2;
            int wybor;
            int wybor2;
            System.Console.WriteLine("Witaj w kalkulatorze!");
            System.Console.WriteLine("Wprowadź pierwszą liczbę: \n");
            liczba1 = int.Parse(Console.ReadLine());
            
            System.Console.WriteLine("Wprowadź drugą liczbę: \n");
            liczba2 = int.Parse(Console.ReadLine());

            System.Console.WriteLine("Wybierz opcję: \n");
            System.Console.WriteLine("1 - dodawanie");
            System.Console.WriteLine("2 - odejmowanie");
            System.Console.WriteLine("3 - mnożenie");
            System.Console.WriteLine("4 - dzielenie \n ");
            
            wybor = int.Parse(Console.ReadLine());

            switch(wybor)
            {
                case 1:
                Console.WriteLine("Wynik to \n");
                Console.WriteLine(liczba1 + liczba2);
                break;

                case 2:
                Console.WriteLine("Wynik to \n");
                Console.WriteLine(liczba1 - liczba2);
                break;

                case 3:
                Console.WriteLine("Wynik to \n");
                Console.WriteLine(liczba1 * liczba2);
                break;

                case 4:
                Console.WriteLine("Wynik to \n");
                Console.WriteLine(liczba1 / liczba2);
                break;
            }

            Console.WriteLine("Wybierz opcję:");
            Console.WriteLine("1 - chcę wykonać jeszcze jedno działanie");
            Console.WriteLine("2 - zakończ działanie programu");
            wybor2 = int.Parse(Console.ReadLine());

            switch(wybor2)
            {
                case 1:
                goto początek;

                case 2:
                Console.WriteLine("Dziękujemy za używanie programu :)");
                break;

            }

            Console.ReadKey();
        }
    }
}

 

1 odpowiedź

+1 głos
odpowiedź 1 marca 2021 przez gagyn Stary wyjadacz (11,050 p.)
wybrane 1 marca 2021 przez JerzykPolski
 
Najlepsza

U mnie działa. Czy zatwierdzasz liczbę enterem?

 

Przy okazji dam krótki feedback co do kodu.

Instrukcje goto raczej powinno się unikać, mogą wprowadzić bałagan. Choć podejrzewam, że dopiero zaczynasz i nie poznałeś jeszcze pojęcia metody/funkcji, więc to uwaga na przyszłość - wydzieliłbym całość do osobnej funkcji, a następnie ją wywoływał zamiast używania goto.

Druga drobna uwaga, to zamiast:

int liczba;
liczba = int.Parse(Console.ReadLine());

możesz zrobić po prostu:

int liczba = int.Parse(Console.ReadLine());

lub jeszcze lepiej:

var liczba = int.Parse(Console.ReadLine());

Nie ma sensu deklarować zmiennych daleko od ich użycia, a już na pewno na początku metody, kiedy używasz ich pod koniec (wybor2). Deklaracje powinny być jak najbliżej ich przypisania lub użycia.

I ostatnia drobna uwaga, to w niektórych miejscach używasz pełnego namespace (System.Console.WriteLine), a w niektórych (Console.ReadLine()). Lepiej wszędzie używaj skróconego.

komentarz 1 marca 2021 przez JerzykPolski Nowicjusz (150 p.)
Dzięki Ci bardzo za wskazówki. Niestety, program dalej nie spełnia swojej funkcji. W visual studio code, którego używałem przy pisaniu programu, wpisałem liczbę, enter i nic. W normalnym visual studio ten sam kod działa normalnie. Chyba się przerzucę na ten drugi edytor.
komentarz 1 marca 2021 przez gagyn Stary wyjadacz (11,050 p.)
Visual Studio Code to edytor

Visual Studio to IDE

Na windowsie w C# najlepiej pisać w VS, ewentualnie Rider, ale on jest płatny dla "nie-studentów".

Osobiście raczej nigdy nie piszę kodu C# w VS Code, więc nie znam przyczyny problemu
komentarz 1 marca 2021 przez JerzykPolski Nowicjusz (150 p.)
Dzięki za odpowiedź

Podobne pytania

0 głosów
1 odpowiedź 146 wizyt
0 głosów
1 odpowiedź 100 wizyt

92,454 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...