[英]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(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.