zmienna w warunku

0

Witam

Stworzyłem taki kod z trzema klasami:

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

namespace Konwersacja_liczb__bin__dec_itd_
{
    class Program
    {


        static void Main(string[] args)
        {
            KonwersacjaWlasciwa konwertuj = new KonwersacjaWlasciwa();
            while (true)
            {
               Console.Clear();
               konwertuj.WybieranieKonwersacji();
               konwertuj.WybieranieLiczby();
            }
        }
       
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Konwersacja_liczb__bin__dec_itd_
{
    class KonwersacjaWlasciwa
    {
        public int liczba = 0;
        KonwersacjaOstateczna konst = new KonwersacjaOstateczna();

        public void WybieranieKonwersacji()
        {
            Console.WriteLine("Witaj wybierz rodzaj konwersacji:\n1. dziesietny na dwojkowy(binarny)\n2. dwojkowy na dziesietny\n3. dziesietny na szestnastkowy\n4. szestnastkowy na dziesetny\n(wpisz wybrana liczbe)\n\n");
            byte RodzajKonwersacji = byte.Parse(Console.ReadLine());
            WywolajOdpowiedniaKonwersacje(RodzajKonwersacji);
        }

        public void WywolajOdpowiedniaKonwersacje(byte RodzajKonwersacji)
        {

            switch (RodzajKonwersacji)
            {
                case 1:
                    konst.DziesietnyNaBinarny(liczba);
                    break;

                case 2:
                    //metoda...
                    break;

                case 3:
                    //metoda...
                    break;

                case 4:
                    //metoda...
                    break;
            }
        }

        public void WybieranieLiczby()
        {
            Console.WriteLine("Teraz wybierz liczbe, ktore chcesz zamienic");
            liczba = int.Parse(Console.ReadLine());
        }


    }
}

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

namespace Konwersacja_liczb__bin__dec_itd_
{
    class KonwersacjaOstateczna
    {
        public int liczba_bin;

        public void DziesietnyNaBinarny(int liczba)
        {
            while(liczba != 0)
            {
               if(liczba % 2 = 0)                                          <------ tutaj problem
                    Console.WriteLine(liczba);
                  
            }
        }
    }
}

Problem jest w tym, że w pokazanym miejscu pojawia się błąd, że lewa strona warunku nie jest zmienną lub właściwością.
Trochę szukałem, ale nie wiem jak to naprawić (domyślam się, że rozwiązanie jest banalne i powinienem się mocno wrócić z materiałem).

Z góry dzięki za czas i chęci.

0

Próbujesz przypisać (=) zamiast porównywać (==).
Zmień na:

liczba % 2 == 0

i będzie dzialało

0

Jak myślisz co się pierwsze wykona, 2 = 0 czy liczba modulo % 2.

W dodatku nie rozumiem jak = działa w tym przypadku chcesz żeby liczba 2 miała wartość 0 ?

A może chciałeś sprawdzić czy (liczba % 2) == 0.
Jeśli tak to używaj nawiasów bo nikt nie pamięta co się w jakiej kolejności wykonuje, nie ma takich maniaków co na pamięć pamiętają kolejności wykonywania w programowaniu, w matematyce też można nie pamiętać jak są nawiasy.

0

Ok dzięki, już wszystko działa.

0

Właściwie, żeby nie było lepsza metoda sprawdzenia parzystości liczby to ( liczba & 1) jak daje true to nieparzysta, false parzysta.

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