C# 在C中转换为字母级#

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)

我参加了一个在线c#类课程,它要求我这样做:

您的解决方案可以使用一系列分支语句,如if()、else-if()和else(),但不需要任何迭代循环

等级转换级别应如下所示:

  • 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)
return
F
似乎有点奇怪,但嘿,这就是你得到的规范

但是我们仍然可以做得更好。请注意,
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;
}