![](/img/trans.png)
[英]C#: how to read a line from a stream and then start reading it from beginning?
[英]calculator in c# does not start from beginning
我是編程新手,我只遇到一個問題。 我試圖對計算器和二次冪計算器進行編程。 我要我或某人選擇是否要“ 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 ---> while(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();
}
}
}
namespace WhatAnApp
{類程序{靜態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;
}
}
}
}
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.