Loading...
PavlinPetkov88 avatar PavlinPetkov88 24 Точки

06. Number in Range [1...100] - Advanced Loops

Ако може някой да ми помогне малко, просто цял ден седя и се чудя как мога да го направа.

Стигнах до тук и не мога да продължа, просто вече ми е лудница в главата. Не мога да изпиша друго число без да ми се затвори конзолата. Моля за съвет.

Благодаря.

using System;

class NumberInRange
{
    static void Main()
    {

        var number = int.Parse(Console.ReadLine()); //input.console
        if (number >= 1 && number <= 100)
        {
            Console.WriteLine("The number is: {0}", number);
        }
        else
        {
            Console.WriteLine("Invalid number! {0}", number);
        }
    }
}

Тагове:
0
Programming Basics 18/10/2016 16:13:03
dakata avatar dakata 26 Точки
Best Answer

Може да се реши с do{...}while(true):

            int number = 0;
            do
            {
                Console.Write("Enter a number in the range [1...100]: ");
                number = int.Parse(Console.ReadLine());
                if (!(number < 1 || number > 100)) break;
                Console.WriteLine("Invalid number!");
            } while (true);
            Console.WriteLine($"The number is: {number}");

 

0
Pilgrimage avatar Pilgrimage 515 Точки

Постави четенето от конзолата вътре в цикъл, от който се излиза при определено условие. Примерно, ако трябва да се излезе при въведен "stop"

string input = Console.ReadLine();

While (!input="stop")

{

       var number = int.Parse(input);

        if (number >= 1 && number <= 100)
        {
            Console.WriteLine("The number is: {0}", number);
        }
        else
        {
            Console.WriteLine("Invalid number! {0}", number);
        }

input = Console.ReadLine());

}

0
18/10/2016 16:27:55
lengarski avatar lengarski 42 Точки

използвай цикъл в който да извършваш четенето и всичко останало.

примерно 

do{

}while(    );

мисля че ще ти свърши най добра работа. Четеш докато числото не отговаря на условието

 var number;

do{

number = int.Parse(Console.ReadLine()); //input.console

 

if(number <1 || number > 100){

        Console.WriteLine("Invalid number! {0}", number);

}

 

}while (  number <1 || number > 100) ;

         Console.WriteLine("The number is: {0}", number);

 

 

нещо подобно трябва да стане. не мога да го тествам защото нямам VS под ръка, но на 99% работи.

0
Pilgrimage avatar Pilgrimage 515 Точки

Понеже нямам текста на задачата, ако трябва да се спре при число вътре в диапазона , сложи това в Main метода:


            var number = int.Parse(Console.ReadLine()); //input.console
            while (true)
            {
                if (number >= 1 && number <= 100)
                {
                    Console.WriteLine("The number is: {0}", number);
                    break;
                }
                else
                {
                    Console.WriteLine("Invalid number! {0}", number);
                }
                number = int.Parse(Console.ReadLine());
            }


 

1
PavlinPetkov88 avatar PavlinPetkov88 24 Точки

Благодаря, Ви много за помоща.

 

1
Pilgrimage avatar Pilgrimage 515 Точки

Всъщност по-читавият начин, вместо да се чупи цикъла е :

var number = int.Parse(Console.ReadLine()); //input.console
while ((number < 1 || number >100))
{
     if (number >= 1 && number <= 100)
     {
         Console.WriteLine("The number is: {0}", number);
     }
     else
     {
         Console.WriteLine("Invalid number! {0}", number);
     }
     number = int.Parse(Console.ReadLine());
 }

0
dmaknev avatar dmaknev 49 Точки

Да, задачата е предвидена да се поупражняваме с while, но понеже аз вече съм се упражнявал достатъчно с него и просто не ме кефи, ама никак... Отделно че точно в C# реализацията му е доста куца... Предпочитам да реша задачата по следния начин:

using System;
            
public class Program
{
    public static void Main()
    {
        Console.Write("Enter a number in the range [1...100]: ");
        int n = int.Parse(Console.ReadLine());
        for (int nn=0; nn < 1; nn++) if (n < 1 || n > 100)
        {
            nn=-1;
            Console.WriteLine("Invalid number!");
            Console.Write("Enter a number in the range [1...100]: ");
            n = int.Parse(Console.ReadLine());
        }
        else
        {
            Console.WriteLine("The number is: {0}",n);
        }
    }
}

0
a.voivodov avatar a.voivodov 21 Точки

Ето и моето решение: 

using System; 

namespace _06.Number_In_Range
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Еnter a number in the range [1...100]:");
            int num = int.Parse(Console.ReadLine());
            if (num <  1 || num >  100)
            {
                do
                {
                    Console.WriteLine("Invalid number!");
                     num = int.Parse(Console.ReadLine());
                } while (num <  1 || num >  100);
            }
            if ((num >= 1 && num <= 100))
            {
                Console.WriteLine("The number is:" + num);
            } 
        }
    }
}

 

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