Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
5 / 5 / 0
Регистрация: 20.08.2017
Сообщений: 685

Преобразование типов

11.04.2018, 14:31. Показов 1543. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
подскажите как преобразовать правильно значение стринг в булеан
мой пример:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
namespace ConsoleApp15
{
public class Quest_for_Trol
    {
        public void Q()
        {
            q1.Quest();
        }
    class Quest1
        {
            public void Quest()
            {
                Console.WriteLine("'Кон - тролль' популяции.\n \t\t\t\tЗадание\n Убейте 2 мистиков, 2 охотников, 2 разведчиков и 1 повелителя зверей из племени Кровавого Скальпа.");
                bool giveTheQuest, refuse_assignment, fight;
                Console.WriteLine("принять задание (1- да, 0- нет)\n");
                giveTheQuest = Convert.ToBoolean(Console.ReadLine());
                if (giveTheQuest)
                {
                    Console.WriteLine("\n Насколько понимаю, ты скоро отправляешься в Зул'Кунду. Но пока ты здесь, у меня для тебя небольшое задание.\n В Тернистой долине развелось слишком много Орков.Западные земли занял клана Сумеречного Молота, восточные – клан Кровавой Глазницы.Они перебираются из своих руин в джунгли и нарушают равновесие здешней природы.Пора нам его восстановить.\n Зул'Кунда – столица Кровавого Скальпа. Там живут все высокопоставленные члены кланов. Убей нескольких, а потом возвращайся ко мне.");
                }
                else
                    Console.WriteLine("Вы отказались от квеста");
            }
        }
        Quest1 q1= new Quest1();
    }
class Program
    {
 
 
        static void Main(string[] args)
        {
 
            //Begin b = new Begin();
            //b.Print();
            Quest_for_Trol qft= new Quest_for_Trol();
            qft.Q();
 
            Console.ReadKey();
 
        }
    }
}
проблема вот в этих строках:
C#
1
2
3
Console.WriteLine("принять задание (1- да, 0- нет)\n");
                giveTheQuest = Convert.ToBoolean(Console.ReadLine());
                if (giveTheQuest)....
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.04.2018, 14:31
Ответы с готовыми решениями:

Преобразование типов
Код: using System; using System.Text; public class Program { public static void Main(string args) { string...

Преобразование типов в T
Доброго времени суток всем. Есть у меня List с заранее неизвестным типом <T> Так же есть строка например "1,0" или...

Преобразование типов
Почему компилятор такое выражение допускает: byte b = 10; b *= b; А вот такое нет: byte b = 10; b = b * b;

31
20.04.2018, 22:22
Студворк — интернет-сервис помощи студентам

Не по теме:

Diamante, пардон, если поспешил

0
5 / 5 / 0
Регистрация: 20.08.2017
Сообщений: 685
21.04.2018, 00:37  [ТС]
willow300, это я не правильно написать а как правильно ?
C#
1
s =Console.WriteLine("#1 - Trols \n#2 - Orcs \n#3 - Humans ")
так?

Добавлено через 2 минуты
willow300, 11 строка в примере лишняя, но а как правильно написать проверку с помощью цикла ду вайл на введенное число и его конвертацию в строку...
0
 Аватар для willow300
152 / 149 / 103
Регистрация: 30.10.2016
Сообщений: 314
21.04.2018, 01:14
Esso11, я не вникал во всю переписку... чтобы я смог помочь, уточни, какая задача стоит перед данным блоком кода? Почему число необходимо конвертировать в строку, а не оставить его числом и что конкретно проверяется в цикле ду-вайл?
Насколько я понял, пользователь должен сделать выбор: 1, 2 или 3. Мы считываем эти данные и сохраняем их в переменную (пускай строковую). Смысл ду-вайла в том, чтобы проверять не ввел ли пользователь что-то кроме 1,2 или 3, и если ввел что-то другое, дать возможность сделать ему выбор повторно?

Добавлено через 22 минуты
Цитата Сообщение от Esso11 Посмотреть сообщение
s =Console.WriteLine("#1 - Trols \n#2 - Orcs \n#3 - Humans ")
так?
Ключевая проблема:
Метод Console.WriteLine() - выводит что-то на консоль.
Метод Console.ReadLine() - считывает что-то, что введено в консоли.
Т.е., чтобы код работал, его нужно подправить следующим образом:
C#
1
2
3
4
5
6
7
8
9
10
11
12
Console.WriteLine("\t\t\tWelcome to Fight- Club!!!");
Console.WriteLine();
Console.WriteLine("Выберите себе Фракцию: ");
Console.WriteLine("#1 - Trols \n#2 - Orcs \n#3 - Humans");
 
string s;
int i;
 
do
{
    s = Console.ReadLine();
} while (!Int32.TryParse(s, out i));
Но, в таком виде цикл do-while, кроме 1, 2 и 3, будет пропускать любое другое целое число. Т.е. пользователь может ввести, к примеру, 7 и do-while это благополучно скушает и запишет в переменную i. Поэтому условие while (!Int32.TryParse(s, out i)); нужно менять (если я верно понял задачу).
0
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
21.04.2018, 01:23
willow300, назначаю тебя главным над этим ...
0
5 / 5 / 0
Регистрация: 20.08.2017
Сообщений: 685
21.04.2018, 01:29  [ТС]
Diamante, willow300, мне предложили написать именно такой цикл с конвертацией что бы как раз избежать ошибки того что человек введет иное число или еще какое то значение не такое как нужно
0
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
21.04.2018, 01:32
предложили правильно, но, реализация - дрянь,говно,отврат,отстой,(еще эпитеты)...
1
5 / 5 / 0
Регистрация: 20.08.2017
Сообщений: 685
21.04.2018, 01:33  [ТС]
Diamante, а как нужно написать что бы избежать таких эпитетов?
0
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
21.04.2018, 01:43
анализировать логику до победного!
для получения того,что надо использовать конструкцию вида
C#
1
2
3
4
5
int i;
do
{
    string s = Console.ReadLine();
} while (!Int32.TryParse(s, out i));
и даже это все мелочь, без понимания происходящего - это все белый шум для мозга и !!!"ответ для препода"!!!
З.Ы. России нужны слесари/токари/прочие станочники..., аграрии, тоже
0
5 / 5 / 0
Регистрация: 20.08.2017
Сообщений: 685
21.04.2018, 01:53  [ТС]
willow300, а как его нужно поменять?

Добавлено через 2 минуты
Diamante, возьму на заметку и посижу больше над книжками, ведь "..... осилит путь идущий ...." не думаю что если я чего то не понял нужно говорить друг это не твое

Добавлено через 7 минут
И отдельное спасибо за терпение и отнятое ваше время на такие пустяки
0
 Аватар для willow300
152 / 149 / 103
Регистрация: 30.10.2016
Сообщений: 314
21.04.2018, 13:48
Цитата Сообщение от Esso11 Посмотреть сообщение
willow300, а как его нужно поменять?
В текущем контексте, как вариант:
C#
1
2
3
4
5
6
7
8
9
byte i;
bool check;
 
do
{
    string s = Console.ReadLine();
    check = byte.TryParse(s, out i);
    if (i != 1 && i != 2 && i != 3) check = false;
} while (check != true);
То, что первое пришло в голову. Но мне самому не нравится такая реализация, возможно кто-то подскажет более красивое решение.
0
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
21.04.2018, 16:04
C#
1
2
3
4
5
            int i;
            do
            {
                Console.Write("input = ");
            } while(!int.TryParse(Console.ReadLine(),out i) || i<1 || i>3);
1
 Аватар для ShmelVG
171 / 106 / 51
Регистрация: 27.11.2015
Сообщений: 1,269
21.04.2018, 19:29
Esso11, не могу понять что именно вы хотели(зачем вам это?), могу предложить такой вариант:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
                    Console.WriteLine("\t\t\tWelcome to Fight- Club!!!");
                    Console.WriteLine();
                    Console.WriteLine("Выберите себе Фракцию: \n" +
                        "1 - Trols \n" +
                        "2 - Orcs \n" +
                        "3 - Humans ");
                    string number = Console.ReadLine();
                    switch (number)
                    {
                        case "1":
                            Console.WriteLine("Рад за вас, теперь вы Trol!");
                            break;
                        case "2":
                            Console.WriteLine("Рад за вас, теперь вы Orc!");
                            break;
                        case "3":
                            Console.WriteLine("Рад за вас, теперь вы  Human!");
                            break;
                        default:
                            Console.WriteLine("Выберите из трёх Фракций");
                            break;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.04.2018, 19:29

Преобразование типов
Подскажите как в c# с массивом int можно поработать как с массивом byte; Как в с++, например, int * ip = new int ; (char *)ip = 7;

Преобразование типов
Почему работает данный код??? Разве существует неявное преобразование int (переменная х) в string??? Т. е. сначала происходит...

Преобразование типов
Есть метод, который принимает на вход переменную типа IEnumerable&lt;DataRow&gt;; у меня есть datagridView. Могу ли я коллекцию строк...

Преобразование типов
Что-то совсем в тупик зашла.Как здесь явно преобразовать? public SortedDictionary&lt;char, double&gt; Info(string txt) { ...

Преобразование типов
нужна помощь с преобразованием типа. Из текстового поля в которое предполагается введение 13 значного числа - ИНН Индивидуального...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
32
Ответ Создать тему
Новые блоги и статьи
SUNO Ai - Река Без Дна
zorxor 31.07.2026
Автор стихотворения - астрофизик Марина Катыс Ссылка на сгенерированную музыкальную композицию: https:/ / suno. com/ song/ 6f6e5464-b290-4650-be6c-44c85f8d8013 Я говорю, что Время- как вода течет. . .
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Новости компьютерного мира и их обсуждение (4) Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru