首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我试图构建时,为什么会出现错误?

问当我试图构建时,为什么会出现错误?
EN

Stack Overflow用户
提问于 2019-07-10 12:53:49
回答 1查看 35关注 0票数 0

试图构建并运行我的第一个程序会产生以下错误。

Book.cs(50,27):error CS0161:‘Book.GetStatistics():并非所有代码路径都返回一个值CS0161

第50行是:公共统计GetStatistics()

任何帮助都会是惊人的!

尝试重建并保存所有更改

代码语言:javascript
复制
using System;
using System.Collections.Generic;

namespace GradeBook
{
    public class Book
    {
        public Book(string name)
        {
            grades = new List<double>();
            Name = name;
        }

        public void AddLetterGrade(char letter)
        {
           switch(letter)
           {
               case 'A':
                   AddGrade(90);
                   break;
               case 'B':
                   AddGrade(80);
                   break;
               case 'C':
                   AddGrade(70);
                   break;
               default:
                   AddGrade(0);
                   break;
            }
        }

        public void AddGrade(double grade)
        {
            if (grade <= 100 && grade >= 0)
            {  
                grades.Add(grade);
            }
            else 
            {
                Console.WriteLine("Invalid Value");  
            }
        }

        public Statistics GetStatistics() 
        {
            var result = new Statistics();
            result.Average = 0.0;
            result.High = double.MinValue;
            result.Low = double.MaxValue;

            for (var index =0; index < grades.Count; index++)
            {
                if (grades[index] == 42.1) 
                {
                    continue;
                }

                result.Low = Math.Min(grades[index], result.Low);
                result.High = Math.Max(grades[index], result.High);
                result.Average += grades[index];
                result.Average /= grades.Count;

                switch(result.Average) 
                {
                    case var d when d >= 90.0:
                        result.Letter = 'A';
                        break;
                    case var d when d >= 80.0:
                        result.Letter = 'B';
                        break;
                    case var d when d >= 70.0:
                        result.Letter = 'C';
                        break;
                    case var d when d >= 60.0:
                        result.Letter = 'D';
                        break;
                    default:
                        result.Letter = 'F';
                        break;
                }

                return result;
            }
        }

        private List<double> grades;
        public string Name;
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-10 14:14:09

return result;语句位于for循环中。这意味着,如果没有年级,或者如果所有年级都是42.1,则不会达到返回语句。

您可能意味着将返回语句放在for-循环的关闭}下面(平均计算的大部分可能也应该移到那里)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56971155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档