[英]C# If statement variables not changing
我开始学习C#,此刻,变量没有像我希望的那样更新。
string Carpet,
tempCarpet;
Double carpetPrice;
do{
Console.WriteLine("What type of carpet do you want: ");
Console.Write("1. Berber ($3.75) | 2. Plush ($4.62) | 3. Barbed ($9.98)");
tempCarpet = Console.ReadLine();
if (tempCarpet == "1") {
Carpet = "Berber";
carpetPrice = 3.75;
} else if (tempCarpet == "2") {
Carpet = "Plush";
carpetPrice = 4.62;
} else if (tempCarpet == "3") {
Carpet = "Barbed";
carpetPrice = 9.98;
} else
Console.WriteLine("Invalid Selection.");
}while(tempCarpet != "1"|tempCarpet != "2"|tempCarpet !="3");
Console.WriteLine("The Carpet" + Carpet + "costs {0:C}", carpetPrice);
`出现错误,提示使用未分配的局部变量。 我希望它采用这种格式,因为我希望可以选择该人想要的“地毯”。 有谁知道解决这个问题的方法吗?
您正在条件中初始化Carpet
,并且编译器无法确定代码是否会到达那里。 你可以做
string Carpet = null;
或者,您可以在其他部分的最后部分为其分配一些默认值。
carpetPrice
也是如此。
更改
Double = carpetPrice;
至
Double carpetPrice;
您以错误的方式声明变量:
string = Carpet,
tempCarpet;
Double = carpetPrice;
声明的正确格式为: datatype var_name [ = value]
正确的方式是:
string Carpet = null, tempCarpet = null;
double carpetPrice = 0;
这不是可编译的代码。
在顶部:
string = Carpet,
tempCarpet;
Double = carpetPrice;
这看起来应该像
string carpet= "";
string tempCarpet = "";
double carpetPrice;
可能会清理事情,为字符串分配一个初始值,以确保在使用之前设置它们。 double是一种值类型,因此是另一回事。 字符串是引用类型。
这是编译器错误
string = Carpet,
tempCarpet;
Double = carpetPrice;
更正的代码:-
string Carpet = tempCarpet;
Double = carpetPrice = 1020.00;
我宁愿为此使用一个开关。
switch(tempCarpet){
case "1" : Carpet = "Berber";
carpetPrice = 3.75;
break;
case "2" : Carpet = "Plush";
carpetPrice = 4.62;
break;
case "3" : Carpet = "Barbed";
carpetPrice = 9.98;
break;
default : Console.WriteLine("Invalid Selection.");
break;
}
条件错误:
}while(tempCarpet != "1"|tempCarpet != "2"|tempCarpet !="3");
改成:
} while (tempCarpet != "1" && tempCarpet != "2" && tempCarpet != "3");
但是更好的方法是:
string Carpet = null;
// ...
// There is some code
// ...
} while (null == Carpet);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.