5 / 5 / 0
Регистрация: 20.08.2017
Сообщений: 685

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

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

Author24 — интернет-сервис помощи студентам
подскажите как преобразовать правильно значение стринг в булеан
мой пример:
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
 Аватар для ShmelVG
171 / 106 / 51
Регистрация: 27.11.2015
Сообщений: 1,268
11.04.2018, 14:57
Esso11,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public void Quest()
                {
                    Console.WriteLine("'Кон - тролль' популяции.\n \t\t\t\tЗадание\n Убейте 2 мистиков, 2 охотников, 2 разведчиков и 1 повелителя зверей из племени Кровавого Скальпа.");
                    bool giveTheQuest ;
                    Console.WriteLine("принять задание (1- да, 0- нет)\n");
                    int number = Convert.ToInt32(Console.ReadLine());
                    giveTheQuest = Convert.ToBoolean(number); 
                    if (giveTheQuest)
                    {
                        Console.WriteLine("\n Насколько понимаю, ты скоро отправляешься в Зул'Кунду. Но пока ты здесь, у меня для тебя небольшое задание.\n В Тернистой долине развелось слишком много Орков.Западные земли занял клана Сумеречного Молота, восточные – клан Кровавой Глазницы.Они перебираются из своих руин в джунгли и нарушают равновесие здешней природы.Пора нам его восстановить.\n Зул'Кунда – столица Кровавого Скальпа. Там живут все высокопоставленные члены кланов. Убей нескольких, а потом возвращайся ко мне.");
                    }
                    else
                        Console.WriteLine("Вы отказались от квеста");
                }
0
5 / 5 / 0
Регистрация: 20.08.2017
Сообщений: 685
11.04.2018, 15:18  [ТС]
ShmelVG, это только так преобразование модно сделать?

Добавлено через 1 минуту
ShmelVG, спасибо большое
0
 Аватар для ShmelVG
171 / 106 / 51
Регистрация: 27.11.2015
Сообщений: 1,268
11.04.2018, 15:29
Esso11, Вам для начала нужно перевести из типа string к int, чтобы можно было считывать 1 или 0 и потом уже привести int к bool. По другому можно сделать если вы сравните считываемую строку с числом напрямую
C#
1
2
3
4
5
6
7
8
9
10
11
Console.WriteLine("принять задание (1- да, 0- нет)\n");
            int number = Convert.ToInt32(Console.ReadLine());
            if (number == 0)
            {
                Console.WriteLine("\n Насколько понимаю, ты скоро отправляешься в Зул'Кунду. Но пока ты здесь, у меня для тебя небольшое задание.\n В Тернистой долине развелось слишком много Орков.Западные земли занял клана Сумеречного Молота, восточные – клан Кровавой Глазницы.Они перебираются из своих руин в джунгли и нарушают равновесие здешней природы.Пора нам его восстановить.\n Зул'Кунда – столица Кровавого Скальпа. Там живут все высокопоставленные члены кланов. Убей нескольких, а потом возвращайся ко мне.");
            }
            else if (number == 1)
            {
                Console.WriteLine("Вы отказались от квеста");
            }
            else Console.WriteLine("Что-то пошло не так...");
1
5 / 5 / 0
Регистрация: 20.08.2017
Сообщений: 685
11.04.2018, 15:38  [ТС]
ShmelVG, а можно как то поменять работу что бы сделать не через булеан переменную а через введение слова да или нет??
0
 Аватар для ShmelVG
171 / 106 / 51
Регистрация: 27.11.2015
Сообщений: 1,268
11.04.2018, 15:47
Esso11, "Любой каприз за Ваши деньги"(с)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
            public void Quest()
            {
                Console.WriteLine("'Кон - тролль' популяции.\n \t\t\t\tЗадание\n Убейте 2 мистиков, 2 охотников, 2 разведчиков и 1 повелителя зверей из племени Кровавого Скальпа.");
                Console.WriteLine("принять задание (1- да, 0- нет)\n");
                string str = Console.ReadLine();
                if (str == "да")
                {
                    Console.WriteLine("\n Насколько понимаю, ты скоро отправляешься в Зул'Кунду. Но пока ты здесь, у меня для тебя небольшое задание.\n В Тернистой долине развелось слишком много Орков.Западные земли занял клана Сумеречного Молота, восточные – клан Кровавой Глазницы.Они перебираются из своих руин в джунгли и нарушают равновесие здешней природы.Пора нам его восстановить.\n Зул'Кунда – столица Кровавого Скальпа. Там живут все высокопоставленные члены кланов. Убей нескольких, а потом возвращайся ко мне.");
                }
                else if (str == "нет")
                {
                    Console.WriteLine("Вы отказались от квеста");
                }
                else Console.WriteLine("Что-то пошло не так...");
            }
1
SETI
 Аватар для orestsyn
64 / 49 / 18
Регистрация: 09.04.2018
Сообщений: 210
11.04.2018, 15:49
Проблема в том была что ты записываешь в giveTheQuest не true\false, а да\нет, поэтому и ошибка). Сделай еще переменную и прировняй, если да = да значит return true else return false ))
0
 Аватар для ShmelVG
171 / 106 / 51
Регистрация: 27.11.2015
Сообщений: 1,268
11.04.2018, 15:49
Esso11, только для реального проекта я бы введенное слово перевел бы к примеру к верхнему регистру что бы не было разногласий между Да/ДА
0
5 / 5 / 0
Регистрация: 20.08.2017
Сообщений: 685
11.04.2018, 15:53  [ТС]
ShmelVG, спасибо за помощь, и простите что отвлек своими глупостями

Добавлено через 1 минуту
ShmelVG, а как перевести вводимый ответ к регистрам верхним или нижним

Добавлено через 1 минуту
orestsyn, ваш вариант в коде как выглядит?
0
 Аватар для ShmelVG
171 / 106 / 51
Регистрация: 27.11.2015
Сообщений: 1,268
11.04.2018, 15:57
Esso11,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 public void Quest()
            {
                Console.WriteLine("'Кон - тролль' популяции.\n \t\t\t\tЗадание\n Убейте 2 мистиков, 2 охотников, 2 разведчиков и 1 повелителя зверей из племени Кровавого Скальпа.");
                Console.WriteLine("принять задание (1- да, 0- нет)\n");
                string str = Console.ReadLine();              
                if (str.ToUpper() == "ДА")
                {
                    Console.WriteLine("\n Насколько понимаю, ты скоро отправляешься в Зул'Кунду. Но пока ты здесь, у меня для тебя небольшое задание.\n В Тернистой долине развелось слишком много Орков.Западные земли занял клана Сумеречного Молота, восточные – клан Кровавой Глазницы.Они перебираются из своих руин в джунгли и нарушают равновесие здешней природы.Пора нам его восстановить.\n Зул'Кунда – столица Кровавого Скальпа. Там живут все высокопоставленные члены кланов. Убей нескольких, а потом возвращайся ко мне.");
                }
                else if (str.ToUpper() == "НЕТ")
                {
                    Console.WriteLine("Вы отказались от квеста");
                }
                else Console.WriteLine("Что-то пошло не так...");
            }
Добавлено через 51 секунду
Esso11, к нижнему тоже самое, только .ToUpper() замените на .ToLower ();

Добавлено через 1 минуту
Esso11, теперь регистр не имеет значения)
1
SETI
 Аватар для orestsyn
64 / 49 / 18
Регистрация: 09.04.2018
Сообщений: 210
11.04.2018, 15:58
C#
1
2
3
4
5
6
7
8
9
10
11
                bool giveTheQuest, refuse_assignment, fight;
                Console.WriteLine("принять задание (1- да, 0- нет)\n");
                 string Choice;
                Choice = Console.ReadLine();
                if(Choice=="1") giveTheQuest = true;
                else giveTheQuest = false;
                giveTheQuest = Convert.ToBoolean(Console.ReadLine());
                if (giveTheQuest)
                {
                    Console.WriteLine("\n Насколько понимаю, ты скоро отправляешься в Зул'Кунду. Но пока ты здесь, у меня для тебя небольшое задание.\n В Тернистой долине развелось слишком много Орков.Западные земли занял клана Сумеречного Молота, восточные – клан Кровавой Глазницы.Они перебираются из своих руин в джунгли и нарушают равновесие здешней природы.Пора нам его восстановить.\n Зул'Кунда – столица Кровавого Скальпа. Там живут все высокопоставленные члены кланов. Убей нескольких, а потом возвращайся ко мне.");
                }
Думаю ты именно об этом спрашивал)

Добавлено через 56 секунд
Как ты проверяешь на да\нет, если пользователь впишет 0\1 ?
1
 Аватар для ShmelVG
171 / 106 / 51
Регистрация: 27.11.2015
Сообщений: 1,268
11.04.2018, 16:03
orestsyn, Esso11, этот код вызывает исключение
0
5 / 5 / 0
Регистрация: 20.08.2017
Сообщений: 685
11.04.2018, 16:05  [ТС]
спасибо за помощь, пробую написать квестовую игру на с# с применением патернов но еще не дошел до самого интересного ...)
0
SETI
 Аватар для orestsyn
64 / 49 / 18
Регистрация: 09.04.2018
Сообщений: 210
11.04.2018, 16:07
Ты проверяешь str на да\нет, но str будет равен либо 0 либо 1)
Тогда надо переделать код вот так
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public void Quest()
            {
                Console.WriteLine("'Кон - тролль' популяции.\n \t\t\t\tЗадание\n Убейте 2 мистиков, 2 охотников, 2 разведчиков и 1 повелителя зверей из племени Кровавого Скальпа.");
                Console.WriteLine("принять задание (Дает)\n");
                string str = Console.ReadLine();              
                if (str.ToUpper() == "ДА")
                {
                    Console.WriteLine("\n Насколько понимаю, ты скоро отправляешься в Зул'Кунду. Но пока ты здесь, у меня для тебя небольшое задание.\n В Тернистой долине развелось слишком много Орков.Западные земли занял клана Сумеречного Молота, восточные – клан Кровавой Глазницы.Они перебираются из своих руин в джунгли и нарушают равновесие здешней природы.Пора нам его восстановить.\n Зул'Кунда – столица Кровавого Скальпа. Там живут все высокопоставленные члены кланов. Убей нескольких, а потом возвращайся ко мне.");
                }
                else if (str.ToUpper() == "НЕТ")
                {
                    Console.WriteLine("Вы отказались от квеста");
                }
                else Console.WriteLine("Что-то пошло не так...");
            }
0
5 / 5 / 0
Регистрация: 20.08.2017
Сообщений: 685
20.04.2018, 21:10  [ТС]
ShmelVG, привет, можешь подсказать с такой проблемой...
C#
1
2
3
4
5
6
7
8
9
10
11
 Console.WriteLine("\t\t\tWelcome to Fight- Club!!!");
            Console.WriteLine();
            Console.WriteLine("Выберите себе Фракцию: ");
            String s;
            int i;
            do
            {
                s = Convert.ToInt32(Console.WriteLine("#1 - Trols \n#2 - Orcs \n#3 - Humans "));
            } while (!Int32.TryParse(s, out i));
            
            int Fraction = Convert.ToInt32(Console.ReadLine());
пишет не может преобразовать войд в стринг.... не подскажешь как это исправить?!
0
3565 / 2506 / 1174
Регистрация: 14.08.2016
Сообщений: 8,216
20.04.2018, 21:20
попробуй понять, что у тебя в 8 строке творится!
0
5 / 5 / 0
Регистрация: 20.08.2017
Сообщений: 685
20.04.2018, 22:04  [ТС]
Diamante, закрывается скобка

Добавлено через 8 минут
Diamante, или ты про новый кусок кода? так там приведение типа
0
3565 / 2506 / 1174
Регистрация: 14.08.2016
Сообщений: 8,216
20.04.2018, 22:11
Esso11, какого в какой?
0
 Аватар для willow300
152 / 149 / 103
Регистрация: 30.10.2016
Сообщений: 314
20.04.2018, 22:18
Esso11, нужно попробовать расшифровать эту строку:

C#
1
s = Convert.ToInt32(Console.WriteLine("#1 - Trols \n#2 - Orcs \n#3 - Humans "));
Присвоить строковой переменной s фразу "#1 - Trols \n#2 - Orcs \n#3 - Humans ", которая должна быть выведена на консоль с помощью метода WriteLine, предварительно конвертировав её в целочисленной значение.
0
3565 / 2506 / 1174
Регистрация: 14.08.2016
Сообщений: 8,216
20.04.2018, 22:20
willow300, я подводил его к этому же, но что б он сам дошел
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.04.2018, 22:20
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

Новые блоги и статьи
Компиляция C++ с Clang API
NullReferenced 24.03.2025
Компиляторы обычно воспринимаются как черные ящики, которые превращают исходный код в исполняемые файлы. Мы запускаем компилятор командой в терминале, и вуаля — получаем бинарник. Но что если нужно. . .
Многопоточное программировани­е в C#: Класс Thread
UnmanagedCoder 24.03.2025
Когда запускается приложение на компьютере, операционная система создаёт для него процесс - виртуальное адресное пространство. В C# этот процесс изначально получает один поток выполнения — главный. . .
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 23.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
Моки в Java: Сравниваем Mockito, EasyMock, JMockit
Javaican 23.03.2025
Как протестировать класс, который зависит от других сложных компонентов, таких как базы данных, веб-сервисы или другие классы, с которыми и так непросто работать в тестовом окружении? Для этого и. . .
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
Образование и практика
Igor3D 21.03.2025
Добрый день А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
Lazarus. Таблица с объединением ячеек.
Massaraksh7 21.03.2025
Понадобилась представление на экране таблицы с объединёнными ячейками. И не одной, а штук триста, и все разные. На Delphi я использовал для этих целей TStringGrid, и то, кривовато получалось. А в. . .
Async/await в Swift: Асинхронное программировани­е в iOS
mobDevWorks 20.03.2025
Асинхронное программирование долго было одной из самых сложных задач для разработчиков iOS. В течение многих лет мы сражались с замыканиями, диспетчеризацией очередей и обратными вызовами, чтобы. . .
Колмогоровская сложность: Приёмы упрощения кода
ArchitectMsa 20.03.2025
Наверное, каждый программист хотя бы раз сталкивался с кодом, который напоминает запутанный лабиринт — чем дальше в него погружаешься, тем сложнее найти выход. И когда мы говорим о сложности кода, мы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru