Felhantering
Hejsan Sweclockare!
Har suttit hela natten och försökt lära mig om felhantering i Visual Studio men jag verkar inte komma någonstans.
Till denna miniräknare ska jag fixa try och catch men jag är lost. Har försökt läsa om de så jag förstår innebörden med det men jag har svårt att få in de i koden. Är de någon som kan ge en hjälpande hand? (Ni behöver inte fixa allt men kanske hjälpa mig på vägen och förklara hur jag ska börja)
using System;
namespace Calc_swich
{
class Program
{
static void Main(string[] args)
{
//string = datatyp text
string namn;
double tal1, tal2, res; //double datatyp decimaltal
char c; //char datatyp tecken
string tmp;
//ÄNDRINGAR TILL AVANSERAD 2
bool fel_opertor = false, fort = true; // en datatyp som kan ha två värde sant
eller falskt.
//en avgränsare
Console.WriteLine("------------------------------------------\n");//\n ger en
extra radbrytning
//Välkomsttext
Console.Write("Mata in ditt namn: ");//Ingen radbrytning mellan texten som
visas och den som matas in
namn = Console.ReadLine();
Console.WriteLine("Välkommen " + namn + ", du kan börja räkna ");
//en avgränsare
Console.WriteLine("------------------------------------------\n");//\n ger en
extra radbrytning
//ÄNDRINGAR TILL AVANSERAD 2
// en ytre do-loop och en inre do-loop
do //Loopa så att det går att göra flera beräkningar
{
Console.Write("Mata in tal1: ");
tmp = Console.ReadLine();
tal1 = Convert.ToInt32(tmp);
Console.Write("Mata in tal2: ");
tmp = Console.ReadLine();
tal2 = Convert.ToInt32(tmp);
//Kör koden nedan (loopa koden) så länge (se while)
do
{
Console.Write("Mata in räknesätt som operator (+ - * / %): ");
c = Convert.ToChar(Console.ReadLine());
Console.WriteLine("------------------------------------------\n");//\n
ger en extra radbrytning
switch (c)
{
case '+':
{
res = tal1 + tal2;
Console.WriteLine("Summa: " + res);
fel_opertor = false;
break;
}
case '-':
{
res = tal1 - tal2;
//res = Math.Sqrt(tal1);
Console.WriteLine("Summa: " + res);
fel_opertor = false;
break;
}
case '/':
{
res = tal1 / tal2;
Console.WriteLine("Summa: " + res);
fel_opertor = false;
break;
}
case '*':
{
res = tal1 * tal2;
Console.WriteLine("Summa: " + res);
fel_opertor = false;
break;
}
default:
{
fel_opertor = true;
Console.WriteLine("Du matade in fel operator, försök
igen");
break;
}
}
} while (fel_opertor == true);//så länge då fel_opertor är sant
//fel_opertor säts till falskt från början och sant om användaren matar in
fel operator
//ÄNDRINGAR TILL AVANSERAD 2
Console.Write("Vill du göra fler beräkningar? (j / n)? ");
c = Convert.ToChar(Console.ReadLine());
if ((c == 'j') || (c == 'J')) //|| betyder eller
{
fort = true;
Console.Clear();
//en avgränsare
Console.WriteLine("------------------------------------------\n");
Console.WriteLine(" " + namn + ", du kan fortsätta att räkna ");
//en avgränsare
Console.WriteLine("------------------------------------------\n");
}
else if ((c == 'n') || (c == 'N'))
{
fort = false;
Console.WriteLine("Tack för den här gången\n");
}
} while (fort == true);//så länge användaren vill fortsätta är fort = sant
Console.ReadKey();
}
}
}