2

レイアウトに問題があります。近くにいることはわかっています。/// 2つのエラーがあります(31,18): error CS1002: ; expected & (31,13): error CS1525: Invalid expression term 'else'///言われたことを実行しようとしましたが、さらにエラーが発生したため、これを機能させる方法がわかりません。

現時点で私はこれを持っています

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

namespace CE0721a
{
    class Tut4_7
    {
        public void run()
          {
            double under16_Free = 2.5;
            double oap = 3.0;
            double other = 5.0;
            int groupSize = 0;
            double totalCost = 0;
            int age = 0;

        while (age!=-1)
        {
            Console.WriteLine("Enter an Age or -1 to quit");
            age=int.Parse(Console.ReadLine());

            if(age<16)&(age>-1);
            {
                groupSize++;
                totalCost = totalCost + under16_Free;
            }
            else if(age>16)
            {
                groupSize++;
                totalCost = totalCost + oap;
            }
            else if(age>16)&(age<=65);
            {
                groupSize++;
                totalCost = totalCost + other;
            }
        }
        if (groupSize>6)
        {
            totalCost = totalCost - (totalCost/5);
        }
        Console.WriteLine("Total Cost = "(totalCost));
        }
    }
}

私はこれをやろうとしています

**年齢に基づいて人々のグループの入場料を表示する地元のスイミングプール用のプログラムを作成します。プログラムは、-1が入力されるまで年齢を入力するようにユーザーに促し続け、その後、グループ内の合計人数とそのグループの合計コストを表示する必要があります。入場料は次のとおりです。-16歳未満の場合65ポンド以上で2.50ポンド-£3および他のすべてのスイマー-£5

6人以上のグループには20%の割引を適用する必要があります。**

これは、Program.csと呼ばれる別のcsに接続されており、このようにレイアウトされて機能します。他のcsファイルでテストしたため、プログラムが表示されます。

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

namespace CE0721a
{
    class Program
    {
        static void Main(string[] args)
        {
            Tut4_7 myProgram = new Tut4_7();
            myProgram.run();
        }
    }
}

誰かが助けることができれば、もう一度ありがとう

4

7 に答える 7

6

いくつかの構文の問題:

  • ifステートメントの開始行をセミコロンで終わらせないでください
  • 複合比較の前後に別の括弧のセットが必要です
  • 前者は短絡するので、ほとんどの場合、&&代わりに使用したい&

それで

if(age<16)&(age>-1);

になるはずです

if ((age<16) && (age>-1))

または、@Servyがコメントで述べたように

if (age<16 && age>-1)
于 2012-10-10T17:46:17.327 に答える
2

いくつかのif/elseステートメントの最後にセミコロンがあり、間違った論理演算子を使用しています。

if(age<16)&(age>-1);

する必要があります

if(age < 16 && age >= 1)
{
    //Code here
}

else if(age>16)&(age<=65);

する必要があります

else if(age > 16 && age <= 65)
{
    //Code here
}

&&演算子の代わりに演算子を使用したい場合、&@Servyはコメントでその理由をわかりやすく説明しています。

于 2012-10-10T17:45:51.607 に答える
1

これを試して:

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

namespace CE0721a
{
    class Tut4_7
    {
        public void run() 
          { 
            double under16_Free = 2.5; 
            double oap = 3.0; 
            double other = 5.0; 
            int groupSize = 0; 
            double totalCost = 0; 
            int age = 0; 

        while (age!=-1) 
        { 
            Console.WriteLine("Enter an Age or -1 to quit"); 
            age=int.Parse(Console.ReadLine()); 

            if((age<16)&&(age>-1))
            { 
                groupSize++; 
                totalCost = totalCost + under16_Free; 
            } 
            else if(age>16) 
            { 
                groupSize++; 
                totalCost = totalCost + oap; 
            } 
            else if((age>16)&&(age<=65))
            { 
                groupSize++; 
                totalCost = totalCost + other; 
            } 
        } 
        if (groupSize>6) 
        { 
            totalCost = totalCost - (totalCost/5); 
        } 
        Console.WriteLine("Total Cost = " + totalCost); 
        }
    }
}
于 2012-10-10T17:51:45.243 に答える
1
if(age<16)&(age>-1);

3 つの問題:

  • まず、 ; を追加しないでください。if ステートメントの後では、何も実行されません (空のステートメント)。

  • 2番目の問題はブラケットです。if 条件でブレークを閉じています。それらを閉じて再度開くことはできませんが、ブラケットを使用して外側のブラケットのパーツを分離できます。

  • 最後の問題は AND 演算子です。論理 AND && ではなく、バイナリ AND & を使用します。

行は次のようになります。

if(age<16 && age>-1)

同じことが他の行にも当てはまります。

于 2012-10-10T17:47:51.873 に答える
0

手始めにこれ:

 if(age<16)&(age>-1);

する必要があります&&。あなたは論理的であり、ビット単位ではありません。

于 2012-10-10T17:45:42.667 に答える
0

あなたはで試すことができます

if ( (age<16) & (age>-1))

構文

if(condition)
{
  //Treatment
} 
于 2012-10-10T17:46:32.557 に答える
0

if ステートメントの形式が正しくありません。論理的な && ではなくバイナリ & を使用しており、両方の条件を単一の () にする必要があります。最も重要なのは、終了を示す if ステートメントの後にセミコロンを付ける必要がないことです。

namespace CE0721a
{
    class Tut4_7
    {
        public void run()
          {
            double under16_Free = 2.5;
            double oap = 3.0;
            double other = 5.0;
            int groupSize = 0;
            double totalCost = 0;
            int age = 0;

        while (age!=-1)
        {
            Console.WriteLine("Enter an Age or -1 to quit");
            age=int.Parse(Console.ReadLine());

            if(age<16 && age>-1)
            {
                groupSize++;
                totalCost = totalCost + under16_Free;
            }
            else if(age>16)
            {
                groupSize++;
                totalCost = totalCost + oap;
            }
            else if(age>16 && age<=65)
            {
                groupSize++;
                totalCost = totalCost + other;
            }
        }
        if (groupSize>6)
        {
            totalCost = totalCost - (totalCost/5);
        }
        Console.WriteLine("Total Cost = "(totalCost));
        }
    }
}
于 2012-10-10T17:48:50.603 に答える