c#中的计算器不会从头开始

时间:2017-11-17 01:36:05

标签: c#

我是编程新手,我遇到了一个问题。我试图在第二个电源上编程计算器和计算器。我想让我或别人选择他是否愿意  “kalkulacka”或“mocninator”。当我完成“mocninator”或“kalkulacka”时,我希望程序能够问我是否想再次运行它。但是有问题。每次我选择选项1(mocninator)然后程序会问我是否要重复它。我输入“ano”(是),它从kalkulacka开始。它不会问我如果我想选择mocninator或kalkulacka。代码可能真的很糟糕,但正如我所说,我一直在编程为max。 4个小时。

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

namespace WhatAnApp
{
class Program
{
    static void Main(string[] args)


    {



        bool kalkulacka = true;
        bool mocninator = false;
        bool pokracovat = true;
        while (pokracovat == true)
        {
            Console.WriteLine("Vítejte v mé aplikaci, pro začátek si vyber, jestli chceš spustit kalkulačku nebo mocninátor.");
            Console.WriteLine("1 - mocninátor");
            Console.WriteLine("2 - kalkulačka");
            int volba1 = int.Parse(Console.ReadLine());
            switch (volba1)
            {
                case 1:
                    mocninator = true;
                    break;
                case 2:
                    kalkulacka = true;
                    break;
                default:
                    Console.WriteLine("Zadal jste špatnout hodnotu!");
                    break;
            }

            if (mocninator)
            {
                Console.WriteLine("Vybrál sis mocninátor");
                Console.WriteLine("Zadejte číslo, které chcete umocnit");
                float s = float.Parse(Console.ReadLine());
                double d = s;
                double m = 2;
                Console.WriteLine("Výsledek je: " + Math.Pow(s, m));
                Console.WriteLine("Přeješ si aplikaci spustit znovu? ano/ne");
                Console.ReadKey();

            }
            else
                pokracovat = true;


            switch (Console.ReadLine())
            {
                case "ano":
                    pokracovat = true;
                        break;
                case "ne":
                    Environment.Exit(0);
                    break;
            }

            while (kalkulacka == true)
            {
                Console.WriteLine("Pro začátek musíš zadat dvě čísla, se kterými budeš pracovat");
                Console.WriteLine("Zadej první číslo: ");
                float a;
                while (!float.TryParse(Console.ReadLine(), out a))
                    Console.WriteLine("Zadal jste neplatné číslo");
                Console.WriteLine("Zadej druhé číslo: ");
                float b;
                while (!float.TryParse(Console.ReadLine(), out b))
                    Console.WriteLine("Zadal jste neplatné číslo");
                Console.WriteLine("Výborně, teď si vyber operaci: ");
                Console.WriteLine("1 - sčítání");
                Console.WriteLine("2 - odčítání");
                Console.WriteLine("3 - násobení");
                Console.WriteLine("4 - dělení");
                char volba = Console.ReadKey().KeyChar;
                Console.ReadKey();
                Console.WriteLine("Zvolil jste volbu číslo: " + volba);
                float vysledek = 0;
                bool platnaVolba = true;
                switch (volba)
                {
                    case '1':
                        vysledek = a + b;
                        break;
                    case '2':
                        vysledek = a - b;
                        break;
                    case '3':
                        vysledek = a * b;
                        break;
                    case '4':
                        vysledek = a / b;
                        break;
                    default:
                        platnaVolba = false;
                        break;
                }
                if (platnaVolba)
                    Console.WriteLine("Výsledek: {0}", vysledek);
                else
                    Console.WriteLine("Neplatná volba operace");
                Console.WriteLine("Přejete si kalkulačku použít znovu? ano/ne");

                platnaVolba = false;
                while (!platnaVolba)
                {
                    switch (Console.ReadLine().ToString().ToLower())
                    {
                        case "ano":
                            platnaVolba = true;
                            pokracovat = true;
                            break;
                        case "ne":
                            platnaVolba = true;
                            pokracovat = false;
                            break;
                        default:
                            Console.WriteLine("Neplatná volba. Zadejte ano/ne !");
                            break;
                    }


                }

                if (pokracovat)
                    Console.Clear();
            }
        }   
        Console.ReadKey();
    }
}

}

我改变了一些东西,但现在它不会开始kalkulacka。我不知道为什么。   bool kalkulacka = false,当我在volba1输入2时,它应该变为true --->虽然(kalkulacka == true)所以问题出在哪里?

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

namespace WhatAnApp
{
    class Program
 {
    static void Main(string[] args)


    {

        bool kalkulacka = false;
        bool mocninator = false;
        bool pokracovat = true;
        while (pokracovat == true)
        {
            Console.WriteLine("Vítejte v mé aplikaci, pro začátek si vyber, jestli chceš spustit kalkulačku nebo mocninátor.");
            Console.WriteLine("1 - mocninátor");
            Console.WriteLine("2 - kalkulačka");
            int volba1 = int.Parse(Console.ReadLine());
            switch (volba1)
            {
                case 1:
                    mocninator = true;
                    break;
                case 2:
                    kalkulacka = true;
                    break;
                default:
                    Console.WriteLine("Zadal jste špatnout hodnotu!");
                    break;
            }

            if (mocninator)
            {
                Console.WriteLine("Vybrál sis mocninátor");
                Console.WriteLine("Zadejte číslo, které chcete umocnit");
                float s = float.Parse(Console.ReadLine());
                double d = s;
                double m = 2;
                Console.WriteLine("Výsledek je: " + Math.Pow(s, m));
            }
            else
                kalkulacka = true;

            Console.WriteLine("Přeješ si aplikaci spustit znovu? ano/ne");

            switch (Console.ReadLine())
            {
                case "ano":
                    pokracovat = true;
                    break;
                case "ne":
                    Environment.Exit(0);
                    break;
                default:
                    Console.WriteLine("Špatná hodnota");
                    break;
            }



            while (kalkulacka)
            {
                Console.WriteLine("Pro začátek musíš zadat dvě čísla, se kterými budeš pracovat");
                Console.WriteLine("Zadej první číslo: ");
                float a;
                while (!float.TryParse(Console.ReadLine(), out a))
                    Console.WriteLine("Zadal jste neplatné číslo");
                Console.WriteLine("Zadej druhé číslo: ");
                float b;
                while (!float.TryParse(Console.ReadLine(), out b))
                    Console.WriteLine("Zadal jste neplatné číslo");
                Console.WriteLine("Výborně, teď si vyber operaci: ");
                Console.WriteLine("1 - sčítání");
                Console.WriteLine("2 - odčítání");
                Console.WriteLine("3 - násobení");
                Console.WriteLine("4 - dělení");
                char volba = Console.ReadKey().KeyChar;
                Console.ReadKey();
                Console.WriteLine("Zvolil jste volbu číslo: " + volba);
                float vysledek = 0;
                bool platnaVolba = true;
                switch (volba)
                {
                    case '1':
                        vysledek = a + b;
                        break;
                    case '2':
                        vysledek = a - b;
                        break;
                    case '3':
                        vysledek = a * b;
                        break;
                    case '4':
                        vysledek = a / b;
                        break;
                    default:
                        platnaVolba = false;
                        break;
                }
                if (platnaVolba)
                    Console.WriteLine("Výsledek: {0}", vysledek);
                else
                    Console.WriteLine("Neplatná volba operace");
                Console.WriteLine("Přejete si kalkulačku použít znovu? ano/ne");

                platnaVolba = false;
                while (!platnaVolba)
                {
                    switch (Console.ReadLine().ToString().ToLower())
                    {
                        case "ano":
                            platnaVolba = true;
                            pokracovat = true;
                            break;
                        case "ne":
                            platnaVolba = true;
                            pokracovat = false;
                            break;
                        default:
                            Console.WriteLine("Neplatná volba. Zadejte ano/ne !");
                            break;
                    }


                }

                if (pokracovat)
                    Console.Clear();
            }
        }
        Console.ReadKey();
    }   

    }
}

1 个答案:

答案 0 :(得分:0)

namespace WhatAnApp

{     课程     {         static void Main(string [] args)

    {

        bool kalkulacka = false;
        bool mocninator = false;
        bool pokracovat = true;
        while (pokracovat == true)
        {
            Console.WriteLine("Vítejte v mé aplikaci, pro začátek si vyber, jestli chceš spustit kalkulačku nebo mocninátor.");
            Console.WriteLine("1 - mocninátor");
            Console.WriteLine("2 - kalkulačka");
            int volba1 = int.Parse(Console.ReadLine());
            switch (volba1)
            {
                case 1:
                    mocninator = true;
                    Console.Clear();
                    break;
                case 2:
                    kalkulacka = true;
                    Console.Clear();
                    break;
                default:
                    Console.WriteLine("Zadal jste špatnout hodnotu!");
                    break;
            }

            if (mocninator)
            {
                Console.WriteLine("Vybrál sis mocninátor");
                Console.WriteLine("Zadejte číslo, které chcete umocnit");
                float s = float.Parse(Console.ReadLine());
                double d = s;
                double m = 2;
                Console.WriteLine("Výsledek je: " + Math.Pow(s, m));
                Console.WriteLine("Přeješ si aplikaci použit znovu? ano/ne");

                switch (Console.ReadLine().ToString().ToLower())
                {
                    case "ano":
                        pokracovat = true;
                        mocninator = false;
                        Console.Clear();
                        break;
                    case "ne":
                        Environment.Exit(0);
                        break;
                    default:
                        Console.WriteLine("Špatná volba");
                        break;
                }
            }
            while (kalkulacka == true)
            {
                Console.WriteLine("Pro začátek musíš zadat dvě čísla, se kterými budeš pracovat");
                Console.WriteLine("Zadej první číslo: ");
                float a;
                while (!float.TryParse(Console.ReadLine(), out a))
                    Console.WriteLine("Zadal jste neplatné číslo");
                Console.WriteLine("Zadej druhé číslo: ");
                float b;
                while (!float.TryParse(Console.ReadLine(), out b))
                    Console.WriteLine("Zadal jste neplatné číslo");
                Console.WriteLine("Výborně, teď si vyber operaci: ");
                Console.WriteLine("1 - sčítání");
                Console.WriteLine("2 - odčítání");
                Console.WriteLine("3 - násobení");
                Console.WriteLine("4 - dělení");
                char volba = Console.ReadKey().KeyChar;
                Console.ReadKey();
                Console.WriteLine("Zvolil jste volbu číslo: " + volba);
                float vysledek = 0;
                bool platnaVolba = true;
                switch (volba)
                {
                    case '1':
                        vysledek = a + b;
                        break;
                    case '2':
                        vysledek = a - b;
                        break;
                    case '3':
                        vysledek = a * b;
                        break;
                    case '4':
                        vysledek = a / b;
                        break;
                    default:
                        platnaVolba = false;
                        break;
                }
                if (platnaVolba)
                    Console.WriteLine("Výsledek: {0}", vysledek);
                else
                    Console.WriteLine("Neplatná volba operace");
                Console.WriteLine("Přejete si aplikaci použít znovu? ano/ne");

                platnaVolba = false;
                while (!platnaVolba)
                {
                    switch (Console.ReadLine().ToString().ToLower())
                    {
                        case "ano":
                            platnaVolba = true;
                            pokracovat = true;
                            kalkulacka = false;
                            Console.Clear();
                            break;
                        case "ne":
                            platnaVolba = true;
                            pokracovat = false;
                            kalkulacka = false;
                            break;
                        default:
                            Console.WriteLine("Neplatná volba. Zadejte ano/ne !");
                            break;
                    }
                }
            }
        }

    }

}

}