C#控制台错误:只能将赋值、调用、递增、递减和新对象表达式用作语句
我是编程新手,正在尝试学习c。我认为我的控制台应用程序有一个简单的问题(代码如下)。错误似乎与我的if语句有关,其内容如下:C#控制台错误:只能将赋值、调用、递增、递减和新对象表达式用作语句,c#,compiler-construction,console,C#,Compiler Construction,Console,我是编程新手,正在尝试学习c。我认为我的控制台应用程序有一个简单的问题(代码如下)。错误似乎与我的if语句有关,其内容如下: //evaluate subtotals to results if (subTotalOne == subTotalTwo) { Console.WriteLine("="); } else if (subTotalOne < subTotalTwo) {
//evaluate subtotals to results
if (subTotalOne == subTotalTwo)
{
Console.WriteLine("=");
}
else if (subTotalOne < subTotalTwo)
{
Console.WriteLine("<");
}
else (subTotalOne > subTotalTwo);
{
Console.WriteLine(">");
}
名称空间itc110_a02_杂货店比较
{
班级计划
{
静态void Main(字符串[]参数)
{
Console.WriteLine("Compare Grocery Stores "); //Alert user to purpose of program with title
Console.WriteLine("\n");//line break
// Store 1
Console.WriteLine("Enter the name of the first store for comparison: ");//storeName 1
String storeOne = Console.ReadLine();//ToLower for eval
//store 1, first item
Console.WriteLine("Name of First product purchased at " + storeOne + ": ");//ask item
String purchaseOne = Console.ReadLine();//collect item
Console.WriteLine("Price paid for first purchased at " + storeOne + ": ");//ask 1st price
Double price1A = Double.Parse(Console.ReadLine());//collect 1st price
//store 1, second item, repeat process -- this ought to be a method or a function
Console.WriteLine("Name of second product purchased at " + storeOne + ": ");//ask item
String purchaseTwo = Console.ReadLine();//collect Item
Console.WriteLine("Price paid for second purchased at " + storeOne + ": ");//Ask Item Price
Double price1B = Double.Parse(Console.ReadLine());//Collect Item Price
Console.WriteLine("\n");
// Store 2, repeat process -- this ought to be a method or a function
Console.WriteLine("Enter the name of the second store for comparison: ");//Store name 1
String storeTwo = Console.ReadLine();// To Evals entry, we ToLower to set to lower case
//store 2
Console.WriteLine("Price paid for " + purchaseOne + " at " + storeTwo + ": ");//ask 1st price
Double price2A = Double.Parse(Console.ReadLine());//collect 1st price
//store 2, second item
Console.WriteLine("Price paid for " + purchaseTwo + " at " + storeTwo + ": ");//Ask Item Price
Double price2B = Double.Parse(Console.ReadLine());//Collect Item Price
Console.WriteLine("\n");
// Results go here
//Store one totals
Console.WriteLine("************ " + storeOne + " ************");
Console.WriteLine(purchaseOne + ": $" + price1A);
Console.WriteLine(purchaseTwo + ": $" + price1B);
Console.WriteLine("\n \n");
// store two totals
Console.WriteLine("************ " + storeTwo + " ************");
// Result A: Where to shop
Console.WriteLine(purchaseOne + ": $" + price2A);
Console.WriteLine(purchaseTwo + ": $" + price2B);
Console.WriteLine("\n \n");
Console.WriteLine("************ After Price Comparison ************");
//merge subtotals
Double subTotalOne = (price1A + price1B);
Double subTotalTwo = (price2A + price2B);
//evaluate subtotals to results
if (subTotalOne == subTotalTwo)
{
Console.WriteLine("=");
}
else if (subTotalOne < subTotalTwo)
{
Console.WriteLine("<");
}
else (subTotalOne > subTotalTwo);
{
Console.WriteLine(">");
}
//keeps the console open
Console.Read();
}
}
Console.WriteLine(“比较杂货店”);//用标题提醒用户程序的用途
Console.WriteLine(“\n”);//换行符
//商店1
Console.WriteLine(“输入要比较的第一个存储的名称:”);//存储名1
String storeOne=Console.ReadLine();//ToLower for eval
//1号店,第一件
Console.WriteLine(“在“+storeOne+”:”)购买的第一个产品的名称;//询问项目
字符串purchaseOne=Console.ReadLine();//收集项目
Console.WriteLine(“在“+storeOne+”:”)首次购买时支付的价格;//询问第一个价格
Double price1A=Double.Parse(Console.ReadLine());//收取第一个价格
//存储1,第二项,重复过程——这应该是一个方法或函数
Console.WriteLine(“在“+storeOne+”:”)购买的第二个产品的名称;//询问项目
字符串purchaseTwo=Console.ReadLine();//收集项目
Console.WriteLine(“在“+storeOne+”:”)第二次购买的价格;//询问商品价格
Double price1B=Double.Parse(Console.ReadLine());//收集商品价格
Console.WriteLine(“\n”);
//存储2,重复过程——这应该是一个方法或函数
Console.WriteLine(“输入要比较的第二个存储的名称:”);//存储名称1
String storeTwo=Console.ReadLine();//若要评估条目,请将其设置为小写
//商店2
Console.WriteLine(“在“+storeTwo+”:”)为“+purchaseOne+”支付的价格;//询问第一个价格
Double price2A=Double.Parse(Console.ReadLine());//收取第一个价格
//2号店,第二件
Console.WriteLine(“在“+storeTwo+”:”)为“+purchaseTwo+”支付的价格;//询问商品价格
Double price2B=Double.Parse(Console.ReadLine());//收集商品价格
Console.WriteLine(“\n”);
//结果在这里
//存储一个总数
Console.WriteLine(“**********”+storeOne+“*************”);
Console.WriteLine(purchaseOne+“:$”+price1A);
Console.WriteLine(purchaseTwo+“:$”+price1B);
Console.WriteLine(“\n\n”);
//存储两个总数
Console.WriteLine(“**********”+storeTwo+“*************”);
//结果A:去哪里购物
Console.WriteLine(purchaseOne+“:$”+price2A);
Console.WriteLine(purchaseTwo+“:$”+price2B);
Console.WriteLine(“\n\n”);
Console.WriteLine(“比价后的*************”;
//合并小计
双倍小计=(价格1A+价格1B);
双倍小计二=(价格2a+价格2b);
//评估小计结果
如果(小计一==小计二)
{
Console.WriteLine(“=”);
}
否则如果(小计一<小计二)
{
控制台。写线(“”);
}
//保持控制台打开
Console.Read();
}
}
}这一行是问题所在
else (subTotalOne > subTotalTwo);
{
Console.WriteLine(">");
}
固定的:
else
{
Console.WriteLine(">");
}
说明:
您的代码相当于:
else
(subTotalOne > subTotalTwo);//else block
{
Console.WriteLine(">");
}
分号使条件表达式成为语句,从而导致错误。
但是,下一个控制台语句也不会是else块的一部分,因为else块在分号之后结束。因此,即使条件表达式是有效语句,“>”也将始终打印出来,这是不需要的。您可能会选择:
else
{
Console.WriteLine(">");
}
因为你已经排除了所有其他的可能性
在格式化方面,我从来都不喜欢其他任何一行。特别是对于初学者,它会模糊程序流。还有一些人完全不同意我的观点……你可能想用
string
和double
来代替string
和double
来声明你的变量。@Tico-真的吗。。??这将如何解决错误?@Rohit Vats我没有说,也没有暗示它将解决错误。这只是良好的做法。冷静下来……从技术上讲,如果两个比较对象中有一个是double.NaN
,那么如果(小计一>小计二),那么用else
代替else就不一样了。但这是一个小细节。谢谢大家的建议和指导,我保证我已经阅读了,在我走了一小段路后,考虑到所说的一切,将重新阅读。我的程序正在运行,我感谢你们所有人的帮助。我知道这是一件简单的事情,我感谢大家向我展示了如何让它变得更简单。我还有很多东西要学,我感谢你们所有人(我说的谢谢够多了吗?)
else
{
Console.WriteLine(">");
}