簡體   English   中英

錯誤CS1002 :; 預期&(31,13):錯誤CS1525:無效的表達式術語'else'

[英]error CS1002: ; expected & (31,13): error CS1525: Invalid expression term 'else'

布局有問題,我知道我很接近。 ///我有兩個錯誤是( 31,18): error CS1002: ; expected & (31,13): error CS1525: Invalid expression term 'else' 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,然后顯示該組中的總人數以及該組的總成本。 入場費如下: - 65歲以下的16英鎊+2.50英鎊和所有其他游泳運動員 - 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();
        }
    }
}

再次感謝,如果有人可以提供幫助

一些語法問題:

  • if語句的開頭行不應以半冒號結尾
  • 你的化合物比較需要另一組括號
  • 你幾乎總是想用&&而不是&因為前者會短路

所以

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

應該成為

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

或者,正如@Servy在評論中提到的那樣

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

在一些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
}

你想使用&&運算符而不是&運算符,@ Servvy在注釋中給出了原因的一個很好的解釋。

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

三個問題:

  • 首先,你不應該添加; 在if語句之后,這將導致無法執行任何操作(空語句)。

  • 第二個問題是括號。 您正在關閉if條件中的breakets。 您無法關閉它們並重新打開它們,但您可以使用括號分隔外部括號中的部件。

  • 最后一個問題是AND運算符。 您使用二進制AND&而不是邏輯AND &&。

該行應如下所示:

if(age<16 && age>-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); 
        }
    }
}

對於初學者來說:

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

應該是&& 你想要一個邏輯而不是一個按位和。

你可以試試

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

句法

if(condition)
{
  //Treatment
} 

你的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));
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM