在c#中测试分数范围
本文关键字:范围 测试 | 更新日期: 2023-09-27 18:16:30
我试图创建一个类,在c#中测试信用评分范围。希望如果在if else语句中选择范围,那么我可以返回有效或无效。
类从另一个调用获得并存储类的分数,然后将运行分数并验证它是否被验证,在300到850的范围内,但是在我完成这个VS之前,我对我大喊了很多脏话。
Thank you
using System;
namespace ConsoleApplication34
{
//test score and returns valid if below 300 or above 850.
//
class CreditScoreEngine
{
public int TestScore()
{
int score = 0;
if (score >= 300 && score <= 850)
score = Convert.ToString("valid")
else (string = "invalid")
}
}
}
这段代码有几个地方非常错误。
- 您已经将变量
score
定义为int类型。然后尝试通过Convert.ToString
给它赋一个值,这将返回一个字符串。编译器不允许你将一种类型的值赋给完全不相关类型的变量。 -
else
不接受条件,因为如果前一个if
中的条件返回false,则运行。你想用花括号代替圆括号,或者你想用else if
. -
string
是一个类型,而不是一个变量。说string = ???
在语法上没有任何意义——你不能重新分配类型。(也许你指的是score
而不是string
) - 如果您确实打算使用
else if
,则需要比较操作符==
而不是赋值操作符=
。记住哪个是哪个的简单方法是=
表示"等于",==
表示"等于"(较长的运算符具有较长的含义)。 - 随后,如果你打算使用
else if
,那么else if
需要一个body。 - 功能上,该函数应该测试分数是否在给定范围内(指定为300-850)。但是,您将
score
的值硬编码为0,因此此函数不会测试任何内容。您要么需要通过Console.ReadLine
向该函数添加输入,要么更改该函数以接受参数。 - 此外,该函数检查分数是否在特定范围内,这意味着返回值将为
bool
。如果函数要单独操作,它也可以有一个返回值void
。但是您已经指定它的返回值为int
,除非您忘记提及某些内容,否则它没有任何意义。 - 同样,如果你做想要函数有一个非空返回值,你的函数目前没有返回任何东西。
public bool TestScore(int score)
{
if (score >= 300 && score <= 850)
{
return true;
}
else
{
return false;
}
}
或者,它看起来像这样:
public void TestScore()
{
string input = Console.ReadLine();
int score;
if (int.TryParse(input, out score))
{
if (score >= 300 && score <= 850)
{
Console.WriteLine("The score passes.");
}
else
{
Console.WriteLine("The score fails.");
}
}
else
{
Console.WriteLine("The score is not in the correct format.");
}
}
你的问题很难理解,你的示例代码没有逻辑意义。然而,我认为你正试图做这样的事情:
public bool isValid(int score) { return score >= 300 && score <= 580;}
//rewrite the code using this
public string TestScore(int score)
{
//I believe it would be more appropiate if you would return a boolean
//instead of a string.
return (score>=300 && score<=850)?"valid":"invalid";
}