«Не все пути кода возвращают значение» - PullRequest
0 голосов
/ 29 октября 2011

Я работаю с массивами и методами.Я работаю над написанием кода, который будет вычислять среднее число чисел, введенных пользователем в массиве.Я придумал первый метод, но VS говорит мне, что «не все пути кода возвращают значение».Когда я тестировал код в методе Main (), он работает хорошо, но когда он внутри моего метода GetValues ​​(), я получаю сообщение об ошибке.

Я читаю все остальные посты, но они не совсем имеют смысла для меня из-за их специфики.Я знаю, что это не так уж сложно, но я новичок и пытаюсь понять это сам.

Моя программа еще не закончена, следующий код - только первая часть (метод) моей программы.Как только GetValues ​​() сработает, идея состоит в том, чтобы вызвать этот метод из другого метода, который будет вычислять среднее значение.Опять же, GetValues ​​() должен захватывать массив.

Вот код:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace testscores
{
    class Program
    {
        static void Main(string[] args)
        {
        }

        private static int[] GetValues()
        {

            string inValue;
            int[] score = new int[5];
            int total = 0;

            for (int i = 0; i < score.Length; i++)
            {
                Console.Write("Enter Score {0}: ", i + 1);
                inValue = Console.ReadLine();
                score[i] = Convert.ToInt32(inValue);
            }

            for (int i = 0; i < score.Length; i++)
            {
                total += score[i];
            }
        }
    }
}

Ответы [ 5 ]

3 голосов
/ 29 октября 2011

Вы пытаетесь вернуть массив целых чисел score?

   ....
        for (int i = 0; i < score.Length; i++)
        {
            total += score[i];
        }
        return score;
    }

Таким образом, вы можете захватить этот массив, когда вы называете его так

int[] scores = GetValues();
2 голосов
/ 29 октября 2011

В конце вашей функции GetValues ​​() вам нужно вернуть int [].Вот что говорит вам ошибка компилятора;если вы следуете всем путям кода в GetValues ​​(), есть хотя бы ОДИН, который не возвращает значение.(добавить return score в конец функции).

2 голосов
/ 29 октября 2011

Ваша функция объявлена ​​для возврата int[], но в ней нет ни одного оператора return.

1 голос
/ 29 октября 2011

Ваш метод ничего не возвращает и не объявлен как void, но int []

0 голосов
/ 29 октября 2011

Ошибка компилятора в том, что вам нужно добавить return score

Помимо этого, вы также выполняете цикл для заполнения локальной переменной 'total', а затем ничего не делаете с тем, что выглядит какошибка дизайна / логики.По сути, этот код можно просто удалить, если только вы не сделаете total членом класса или параметром out вместо локальной переменной.Вы также можете просто сделать это в первом цикле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...