我认为该错误与If语句有关,但我尝试搜索错误,并且大多数问题都是由语法错误引起的,这对我来说似乎并非如此。提前感谢您的帮助。
using System;
namespace FirstConsoleProjectSolution
{
class MainClass
{
public static void Main (string[] args) // this is a method called "Main". It is called when the program starts.
{
string square;
string cylinder;
Console.WriteLine ("Please enter a shape");
if (string == square) {
double length;
double width;
double height;
Console.WriteLine ("Please enter length");
Console.ReadLine (Convert.ToDouble ());
Console.WriteLine ("Please enter width");
Console.ReadLine (Convert.ToDouble ());
Console.WriteLine ("Please enter height");
Console.ReadLine (Convert.ToDouble ());
Console.WriteLine ("Your total volume is" + length * width * height);
}
if (string == cylinder) {
double areaOfBase;
double height;
Console.WriteLine ("Please enter area of base");
Console.ReadLine (Convert.ToDouble ());
Console.WriteLine ("Please enter height");
Console.ReadLine (Convert.ToDouble ());
Console.WriteLine ("Your total volume is" + areaOfBase * height);
}
}
}
}
答案 0 :(得分:3)
这是因为这句话:
if (string == square) {
string
关键字表示数据类型,无法比较数据类型和字符串。
您打印出来的消息表明您正在尝试输入内容,但没有输入。我认为你正在尝试做类似的事情:
Console.WriteLine ("Please enter a shape");
string shape = Console.ReadLine();
if (shape == "square") {
...
稍后在代码中,当您尝试输入数字时,您将使用这样的代码来解析字符串并将其放入变量中:
length = Convert.ToDouble(Console.ReadLine());
答案 1 :(得分:0)
您没有名为string
的变量。使用string
也是违法的,因为它是该语言中的关键字。
如果您对使用变量名称string
感到满意(我可能会避免使用它,因为在这种情况下它不是很具描述性),您可以通过在开头添加@
符号来转义关键字变量名称。
您的代码有多个问题。首先,您实际上并不是在开始时要求任何输入。如果您的目的是从用户那里获得输入,则应考虑将Console.ReadLine()的值赋给变量。您应该考虑以下内容:
Console.WriteLine("Please enter a shape");
string shapeType = Console.ReadLine();
if (shape == "square")
{
//do something
}
如果您坚持命名变量string
,则必须说明
string @string = Console.ReadLine();
答案 2 :(得分:0)
您尚未分配字符串变量
string square;
string cylinder;
您尚未捕获用户的输入
解决方案
string square = "square";
string cylinder = "cylinder";
string input;
Console.WriteLine ("Please enter a shape");
input = Console.ReadLine();
if (input == square) {
// Do stuff
}
您正在收到错误,因为您正在比较基本类型声明' string'到字符串柱面的实例
if (string == square) {