布局有问题,我知道我很接近。 ///我有两个错误(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岁以下£2.50超过65-£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();
}
}
}
再次感谢,如果有人可以提供帮助
答案 0 :(得分:6)
一些语法问题:
&&
代替&
,因为前者会短路所以
if(age<16)&(age>-1);
应该成为
if ((age<16) && (age>-1))
或者,正如@Servy在评论中提到的那样
if (age<16 && age>-1)
答案 1 :(得分: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会在注释中对原因进行很好的解释。
答案 2 :(得分:1)
if(age<16)&(age>-1);
三个问题:
首先,你不应该添加;在if语句之后,这将导致 没有(空陈述)被执行。
第二个问题是括号。你正在关闭破坏 你的if条件。你不能关闭它们并重新打开它们,但是你 可以使用括号分隔外括号中的部分。
最后一个问题是AND运算符。你使用二进制AND&amp;和 不是逻辑的AND&amp;&amp;。
该行应如下所示:
if(age<16 && age>-1)
同样的事情适用于另一条线。
答案 3 :(得分: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);
}
}
}
答案 4 :(得分:0)
您可以尝试使用
if ( (age<16) & (age>-1))
语法
if(condition)
{
//Treatment
}
答案 5 :(得分:0)
你的if语句形成错误,你正在使用二进制&amp;不是逻辑&amp;&amp;并且两个条件只需要在单个()中,最重要的是你不需要在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));
}
}
}