Loading...
Sukey avatar Sukey 2 Точки

Вложени цикли - Въпрос към фабрика за сладки

Здравейте, 

Въпроса ми е към задачата в следната лекция: https://softuni.bg/trainings/resources/officedocument/35368/presentation-programming-basics-with-csharp-september-2018/2073 

(за джъдж: https://judge.softuni.bg/Contests/Practice/Index/1016#7 ).

Получавам 90/100 поради run-time error. 

Може ли информация, защо го дава този error?

 

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

namespace AdvancedCyclesTraining
{
    class Program
    {
        static void Main(string[] args)
        {
            int batchNum = int.Parse(Console.ReadLine());
            string ingredients;
            string all = null;


            for (int currentBatch = 1; currentBatch <= batchNum;)
            {
                ingredients = Console.ReadLine();

                while(ingredients != "Bake!")
                {
                    all += ingredients;
                    ingredients = Console.ReadLine();
                    
                }

                if(all.Contains("sugar") == true && all.Contains("eggs") == true && all.Contains("flour") == true)
                {
                    Console.WriteLine("Baking batch number " + currentBatch +"...");
                    all = null;
                    currentBatch++;
                }

                else
                {
                    Console.WriteLine("The batter should contain flour, eggs and sugar!");
                }

            }

        }
    }
}
 

Тагове:
0
Programming Basics with C#
Sukey avatar Sukey 2 Точки

Окей, открих си проблема.

null не е окей да се ползва в случая, защото получавам:
''Exception Unhandled" - System.NullReferenceException: 'Object in reference not set to an instance of an object.' - all was null. 

(и този Run-Time error най вероятно излиза когато, след един успешен рунд, вместо да въведеш отново някакви ingredients, цъкнеш направо ''Bake!", което праща null variable да се тества в if statement-a. Във всичко останали случай, няма да се забележи, hence the 90/100)

Оправих го като замених и на двете места:
string all = null;     - >   string all = string.Empty; 

 

 

 

1
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.