-4
これは私がクラスで作業していたコードです。私はバーチャルスタジオ2015でコードを作成し、2行目の末尾に1行、38行目の最後に2つの} expected
というエラーが発生します。C#で「期待されるエラー」をデバッグするには?
私はC#を初めて使用しています。なぜ私のコードが実行されず、予想されるエラーがあるのかについて
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MultiConversion
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("this program can convert between units in different settings like currency, speed, and weight");
//define vars
double miles, kilometers, pounds, kilograms, euros, dollars;
Int16 number, first, second, third;
//get user input
Console.WriteLine("please choose what you want to convert and enter the number associated with it 1speed, 2weight, 3currency.");
number = Convert.ToInt16(Console.ReadLine());
if (number == 1)
{ { { //speed conversion
Console.WriteLine("you have chosen to convert speed between miles and kilometers");
Console.WriteLine("which would you like to convert from 1miles, or 2kilometers ?");
first = Convert.ToInt16(Console.ReadLine());
if (first == 1)
Console.Write("enter miles: ");
miles = Convert.ToDouble(Console.ReadLine());
kilometers = miles * 1.60934;
Console.WriteLine("your speed in kilometers per hour is" + kilometers + "per hour");
}
else
{
Console.Write("enter kilometers: ");
kilometers = Convert.ToDouble(Console.ReadLine());
miles = kilometers * .621;
Console.WriteLine("your speed in miles per hour is" + miles + "per hour"); } }
else
if (number == 2)
{ { //weight conversion
Console.WriteLine("you have chosen to convert weight between US pounds and kilograms");
Console.WriteLine("which would you like to convert from 1pounds, or 2kilograms ?");
second = Convert.ToInt16(Console.ReadLine()); }
if (second == 1)
{
Console.Write("enter pounds: ");
pounds = Convert.ToDouble(Console.ReadLine());
kilograms = pounds * 2.20462;
Console.WriteLine("your weight in kilograms is" + kilograms + "."); }
else
{
Console.Write("enter kilograms: ");
kilograms = Convert.ToDouble(Console.ReadLine());
pounds = kilograms * .453592;
Console.WriteLine("your weight in pounds is" + pounds + "."); } }
else
{
{ //currency conversion.
Console.WriteLine("you have chosen to convert currency between dollars and euros using the conversion factors as of 9 - 9 - 16");
Console.WriteLine("which would you like to convert from 1dollars, or 2euros ?");
third = Convert.ToInt16(Console.ReadLine());
}
if (third == 1)
{
Console.Write("enter dollars");
dollars = Convert.ToDouble(Console.ReadLine());
euros = dollars * .89;
Console.WriteLine("your" + dollars + "dollars is equal to " + euros + "euros."); }
else
{
Console.Write("enter euros");
euros = Convert.ToDouble(Console.ReadLine());
dollars = euros * 1.12;
Console.WriteLine("your" + euros + "euros is equal to " + dollars + "dollars."); } } }
Console.WriteLine("thank you and I hope you converted all that you need to.");
Console.ReadKey();
}
}
}
さて、これを試して、コンパイラが間違っている正確に何を言っているように見えます。あなたは何を理解するのに問題がありますか?同じ行に複数のブレースを置くことをやめ、各ブレースに独自の行を付けることで.NETの規則に従うことをお勧めします。そのようにコードの実際のブロックと一致するかっこと字下げを確認する方がはるかに簡単です。しかし、少なくとも、コンパイラがブレース文字を予期していると伝えたときに、その意味を理解できるはずです。 –