我正在为购物系统编写程序。在这里我使用数组从用户的品牌名称获取输入。我正在使用返回字符串的方法来获取输入。以下是代码:
public class Brand{
private string brandName;
public string BrandName
{
get { return brandName; }
set { brandName = value; }
}
public string getBrandName()
{
string[] brands = new string[5];
brands[0] = "Honda";
brands[1] = "Suzuki";
brands[2] = "Ferrari";
brands[3] = "BMW";
brands[4] = "Toyota";
Console.WriteLine("Please enter the brand name from the above given brands..");
string temp = Console.ReadLine();
do
{
try
{
for (int i = 0; i < 6; i++)
{
if (brands[i].Contains(temp))
{
this.BrandName = temp;
break;
}
}
return this.BrandName;
}
catch
{
Console.WriteLine("Your provide brand does not match with the database in our system. Please try another one.");
}
} while (BrandName!=temp);
}
}
问题在于我处于初级水平并且没有得到应该在这个while语句中应该是什么,它循环并要求用户一次又一次地输入,直到他输入正确的品牌名称。请帮我。
答案 0 :(得分:2)
根据您的代码,这可能会有效:
public string getBrandName()
{
string[] brands = new string[5];
brands[0] = "Honda";
brands[1] = "Suzuki";
brands[2] = "Ferrari";
brands[3] = "BMW";
brands[4] = "Toyota";
Console.WriteLine("Please enter the brand name from the above given brands..");
string temp = Console.ReadLine();
while(!brand.Contains(temp))
{
Console.WriteLine("Your provide brand does not match with the database in our system. Please try another one.");
temp = Console.ReadLine();
}
return temp;
}
很少有注意事项:
我们会要求用户提供品牌名称。
我们将检查输入是品牌列表中的品牌(您使用包含来检查输入是否在每个品牌名称的字符数组中,注意区别)。
如果名称在列表中,我们将不会进入循环内部 将返回品牌名称。
如果名称不在列表中,我们将再次要求用户插入 有效的品牌名称,直到他进入任何,然后我们将返回它。
答案 1 :(得分:0)
如果您只有4个品牌,那么您可以在while循环中尝试或声明所有品牌
while (input== 'brand1'||'brand2')
或者如果您的列表太大,那么您可以将它们放入arraylist
像这样List <String> listClone = new ArrayList<String>();
for (String string : list) {
if(string.matches("(?i)(bea).*")){
listClone.add(string);
}
}
System.out.println(listClone);
答案 2 :(得分:0)
检查以下代码 - 它运作良好:
课程计划 { static void Main(string [] args) { 品牌=新品牌(); string brandName = brand.getBrandName(); Console.WriteLine(&#34;您输入正确的品牌名称!!!&#34;); Console.WriteLine(名优产品); 到Console.ReadLine(); }
{{1}}