C# 在C中转换为字母级#
我参加了一个在线c#类课程,它要求我这样做: 您的解决方案可以使用一系列分支语句,如if()、else-if()和else(),但不需要任何迭代循环 等级转换级别应如下所示:C# 在C中转换为字母级#,c#,C#,我参加了一个在线c#类课程,它要求我这样做: 您的解决方案可以使用一系列分支语句,如if()、else-if()和else(),但不需要任何迭代循环 等级转换级别应如下所示: 90-100之间的任何值都会得到“A”级 80-89之间的任何值都被给予“B”级 70-79之间的任何值都被给予“C”级 在60-69之间的任何值都被给予“D”级 所有其他值的等级为“F” 我的代码是 private char convertToLetterGrade(int numberGrade)
- 90-100之间的任何值都会得到“A”级
- 80-89之间的任何值都被给予“B”级
- 70-79之间的任何值都被给予“C”级
- 在60-69之间的任何值都被给予“D”级
- 所有其他值的等级为“F”
private char convertToLetterGrade(int numberGrade)
{
// replace with student code(Which I have done)
if (numberGrade >= 90 && numberGrade <= 100)
{
MessageBox.Show("A");
}
else if (numberGrade >= 80 && numberGrade <= 90)
{
MessageBox.Show("B");
}
else if (numberGrade >= 70 && numberGrade <= 80)
{
MessageBox.Show("C");
}
else if (numberGrade >= 60 && numberGrade <= 70)
{
MessageBox.Show("D");
}
else if (numberGrade <= 70)
{
MessageBox.Show("F");
}
}
private char convertToLetterGrade(int numberGrade)
{
//替换为学生代码(我已完成)
如果(numberGrade>=90&&numberGrade=80&&numberGrade=70&&numberGrade=60&&numberGrade,则由于函数是
private CHAR ConvertToLetterGrade(int numberGrade)
但是您没有在函数中返回字符。如果不需要返回值,请将其更改为
private void ConvertToLetterGrade(int numberGrade)
编辑:
由于您所做的只是显示一个消息框,因此不需要返回值。如果您的函数不需要返回值,则应将其设置为键入void。您与第一组代码非常接近,但只需要进行一些更改
private void convertToLetterGrade(int numberGrade)
{
// replace with student code(Which I have done)
if (numberGrade >= 90 && numberGrade <= 100)
{
MessageBox.Show("A");
}
else if (numberGrade >= 80 && numberGrade < 90)
{
MessageBox.Show("B");
}
else if (numberGrade >= 70 && numberGrade < 80)
{
MessageBox.Show("C");
}
else if (numberGrade >= 60 && numberGrade < 70)
{
MessageBox.Show("D");
}
else
{
MessageBox.Show("F");
}
}
private void convertToLetterGrade(int numberGrade)
{
//替换为学生代码(我已完成)
如果(numberGrade>=90&&numberGrade=80&&numberGrade<90)
{
MessageBox.Show(“B”);
}
否则如果(numberGrade>=70&&numberGrade<80)
{
MessageBox.Show(“C”);
}
否则如果(numberGrade>=60&&numberGrade<70)
{
MessageBox.Show(“D”);
}
其他的
{
MessageBox.Show(“F”);
}
}
还要确保在if语句中比较正确的内容。最初,您的numberGrade>=80&&numberGrade有两种方法可以解决您的问题。如果不需要返回值(仅显示)然后只需将函数的char
类型更改为void
。否则,必须为每种情况添加return
操作,例如:
if (numberGrade >= 90 && numberGrade <= 100
{
MessageBox.Show("A");
return 'A';
}
如果(numberGrade>=90&&numberGrade
convertToLetterGrade(int):并非所有路径都返回值
该方法应为每种情况返回一个值
private char convertToLetterGrade(int numberGrade)
{
// replace with student code(Which I have done)
char letter = 'F';
if (numberGrade >= 90 && numberGrade <= 100)
{
MessageBox.Show("A");
letter = 'A'
}
else if (numberGrade >= 80 && numberGrade < 90)
{
MessageBox.Show("B");
letter = 'B'
}
else if (numberGrade >= 70 && numberGrade < 80)
{
MessageBox.Show("C");
letter = 'C'
}
else if (numberGrade >= 60 && numberGrade < 70)
{
MessageBox.Show("D");
letter = 'D'
}
return letter;
}
private char convertToLetterGrade(int numberGrade)
{
//替换为学生代码(我已完成)
字符字母='F';
如果(numberGrade>=90&&numberGrade=80&&numberGrade<90)
{
MessageBox.Show(“B”);
字母='B'
}
否则如果(numberGrade>=70&&numberGrade<80)
{
MessageBox.Show(“C”);
字母='C'
}
否则如果(numberGrade>=60&&numberGrade<70)
{
MessageBox.Show(“D”);
字母='D'
}
回信;
}
另外,在使用时要小心,首先,convertToLetterGrade
需要返回一个char
,因为这是您选择方法签名时强加的条件。所以,好的,让我们返回一个char
:
private char convertToLetterGrade(int numberGrade)
{
// replace with student code(Which I have done)
if (numberGrade >= 90 && numberGrade <= 100)
{
return `A`;
}
else if (numberGrade >= 80 && numberGrade <= 90)
{
return `B`;
}
else if (numberGrade >= 70 && numberGrade <= 80)
{
return `C`;
}
else if (numberGrade >= 60 && numberGrade <= 70)
{
return `D`;
}
else if (numberGrade <= 60)
{
return `F`;
}
}
你看到区别了吗?现在,任何numberGrade
都将遵循一条返回某个内容的路径。拥有convertToLetterGrade(110)
returnF
似乎有点奇怪,但嘿,这就是你得到的规范
但是我们仍然可以做得更好。请注意,if-else
子句是按顺序计算的,因此您可以通过以下操作对其进行优化:
private char convertToLetterGrade(int numberGrade)
{
// replace with student code(Which I have done)
if (numberGrade > 100)
{
return `F`
}
if (numberGrade >= 90)
{
return `A`;
}
else if (numberGrade >= 80)
{
return `B`;
}
else if (numberGrade >= 70)
{
return `C`;
}
else if (numberGrade >= 60)
{
return `D`;
}
else
{
return `F`;
}
}
无需检查每个else if
子句中的上限,因为如果您已经在上一个子句中检查过,请避免不必要的检查
最后(这主要是基于观点的),如果可能的话,通常你应该尽量避免方法中的多重回报。你会看到许多书以以下方式实现类似的方法:
private char convertToLetterGrade(int numberGrade)
{
// replace with student code(Which I have done)
char grade;
if (numberGrade > 100)
{
grade = `F`;
}
if (numberGrade >= 90)
{
grade = `A`;
}
else if (numberGrade >= 80)
{
grade = `B`;
}
else if (numberGrade >= 70)
{
grade = `C`;
}
else if (numberGrade >= 60)
{
grade = `D`;
}
else
{
grade = `F`;
}
return grade;
}
通过输入一些输入来测试系统中的代码。你的问题是关于如何使用文本框和按钮来运行代码的用户界面吗?有点不清楚你在问什么,你觉得你的代码有什么问题?@mjwills我试过了,但没有成功。是的,我试过@Saruman answer,我定义为“不工作”当我输入一个数字时,任何数字都会出现一个消息框,显示数字等级“X”的字母等级为a。我尝试了,但没有成功,但出现了一个错误,显示“无法将类型void转换为char”您是否将另一个答案中的“return”语句添加到代码中?如果是,请删除它们并重试。我尝试了“return”语句,但仍然没有结果。因此,单击“转换为字母等级”按钮后,是否要显示带有字母等级的消息框?“那么,你想在单击“转换为字母等级”按钮后显示一个带有字母等级的消息框吗?”是的,你的答案有效,谢谢,但为了使它生效,我必须在每个字母后面添加分号='X'语句。你能不能告诉我为什么要添加“字母”“语句并将字符字母声明为‘F’?正如我所说的,该方法要求返回‘char’,并且您应该为每种情况返回‘char’。在您的情况下,不需要对‘F’进行额外的逻辑控制,因为其他人已经有了逻辑。我建议您调试它以更好地理解。
private char convertToLetterGrade(int numberGrade)
{
// replace with student code(Which I have done)
char grade;
if (numberGrade > 100)
{
grade = `F`;
}
if (numberGrade >= 90)
{
grade = `A`;
}
else if (numberGrade >= 80)
{
grade = `B`;
}
else if (numberGrade >= 70)
{
grade = `C`;
}
else if (numberGrade >= 60)
{
grade = `D`;
}
else
{
grade = `F`;
}
return grade;
}