Zdania warunkowe if - przechodzenie do pętli względem wyboru przez użytkownika

0

Witam, chciałem sobie poćwiczyć przechodzenie do różnych pętli w zależności od wyboru użytkownika na początku.
Wymyśliłem sobie taki trywialny przykład :

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

namespace ConsoleApplication2sdffdsfsd
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Chcesz dodać liczby (1) czy pomozyc (2)");
            int n, c, b;
            double wynik1 = 0;
            double wynik2 = 1;

            n = Convert.ToInt16(Console.ReadLine());
            
            if (n == 1) 
            { 
                Console.WriteLine("Wybrałeś dodawanie, ile liczb chcesz dodać ?");
                

                b = Convert.ToInt16(Console.ReadLine());
                
                for (int i = 1; i <= b; i++)
                {
                    Console.Write("Podaj liczbe " + i + ": ");
                    double x = Convert.ToDouble(Console.ReadLine());
                    
                    double wynik1 = wynik1 + x;
                
                    

                }
            }
            if (n == 2) 
            {
                Console.WriteLine("Wybrałeś mnozenie, ile liczb chcesz przez siebie pomnozyc ?");
                
                c = Convert.ToInt16(Console.ReadLine());
                
                
                for (int i = 1; i <= c; i++)
                {
                    Console.Write("Podaj liczbe " + i + ": ");
                    double x = Convert.ToDouble(Console.ReadLine());

                    double wynik2 = wynik2 * x;
                }

            }
            Console.ReadKey();
        }
    }
}
 

Ale czepia się o to że na początku podałem double wynik1=0 a potem napisałem wynik1 = wynik1 + x

Wcześniej w np takim przykładzie

using System;
class Program
{
    static void Main(string[] args)
    {
        Console.Write("Średnia kwadratowa. Dla ilu liczb? ");
        int n;
        n = Convert.ToInt16(Console.ReadLine());
 
        double licznik = 0;
        double mianownik = n;
        for (int i = 1; i <= n; i++)
        {
            Console.Write("Podaj liczbe " + i + ": ");
            double x = Convert.ToDouble(Console.ReadLine());
            x = x*x;
            licznik = licznik + x;
        }
        double wynik = Math.Sqrt(licznik / mianownik);
        Console.WriteLine("Wynik: " + wynik);
        Console.Write("Naciśnij dowolny klawisz, aby zakończyć...");
        Console.ReadKey();
    }
} 

To działało, czemu w 1 przykładzie nie działa ?

Mam jeszcze jeden taki przykład, nie zrobiony przeze mnie :

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

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Co chcesz zrobić?\n");
            Console.WriteLine("1.Zamienić stopnie celcjusza na fahrenheita\n");
            Console.WriteLine("2.zamienić stopnie fahrenheita na celcujsza\n");

            int c = Int32.Parse(Console.ReadLine());


            switch (c)
            {
                case 1:
                    {
                        Console.Write("\nPodaj ilość stopni Celcjusza : ");
                        double i1 = Int32.Parse(Console.ReadLine());

                        Console.WriteLine("\t[F] = " + (((i1 * 9) / 5) + 32));
                        break;
                    }
                case 2:
                    {
                        Console.Write("\nPodaj ilość stopni Fahrenheita : ");
                        double i1 = Int32.Parse(Console.ReadLine());

                        Console.WriteLine(("\t[C]" + (((i1 - 32) * 5) / 9)));
                        break;
                    }

            } Console.ReadKey();
        }
    }
} 

Lepiej jest robić tak jak w 1 przykładzie czy w 2 ? Jeśli chodzi o przechodzenie do pętli względem wyboru przez użytkownika.

0

Usuń double z linijki: double wynik1 = wynik1 + x;
A dlaczego to już sam dedukuj

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