Wątek przeniesiony 2017-11-26 10:40 z C# i .NET przez Patryk27.

Wczytywanie liczb od użytkownika

0

Witam.
Z góry przepraszam, że piszę o takie banały, ale to moje pierwsze dni w C#. Chciałem sobie stworzyć podstawowy program, który liczy pole kwadratu po wpisaniu przez użytkownika boku a, ale za pomocą niżej określonej metody. Wiem, że muszę do tego zaimplementować jeszcze metodę int.Parse tylko już nie wiem w którym miejscu i w jaki sposób. Próbowałem na 100 różnych i ciągle nie działa :/

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

namespace edu09_methods
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Wprowadz bok a, aby obliczyc pole kwadratu: ");
            string a = Console.ReadLine();

            int wynik = polekw(a);

            
            Console.WriteLine(string.Format("Pole kwadratu o boku {0} wynosi: {1}", a, wynik));

            Console.ReadLine();
        }

        static int polekw(int a)
        {
            return a * a;
        }
    }
}
0
int wynik = polekw(Int32.Parse(a));

albo czytaj od razu do inta

int a = Int32.Parse(Console.ReadLine());
0

Możesz użyć po prostu

int side = int.Parse(a);

ale wtedy rzuci Ci wyjątek jeżeli a nie będzie liczbą.

Bezpieczniej jest użyć TryParse i przydało by się również pozwolić użytkownikowi ponowić próbę jeżeli wpisał np. tekst. Poniżej kawałek kodu ;)
Tutaj chciałbym jeszcze napisać - używaj sensownych nazw zmiennych/metod/klas itd. a w przyszłości oszczędzi Ci to bólów głowy bo coś "nie działa".

string userInput; // Dawniej - a
int side;
do
{
    Console.WriteLine("Wprowadz bok a, aby obliczyc pole kwadratu: ");
    userInput = Console.ReadLine();
} while (!int.TryParse(userInput, out side));

Pętla do-while wykona Ci się przynajmniej raz, chyba że użytkownik poda coś co nie jest liczbą całkowitą wtedy wykona się jeszcze raz.

TryParse przyjmuje 2 argumenty:
1 - string który chcemy przekonwertować
2 - wynik konwertowania
Zwraca true kiedy się udało, w przeciwnym razie false - tego właśnie używamy jako warunku pętli (z negacją).

Później wiadomo - do obliczeń używasz side.

1 użytkowników online, w tym zalogowanych: 0, gości: 1