нельзя преобразовать тип integer к boolean

Не удается привести int к bool

11 ответов

int и bool не может быть неявно преобразован (в отличие от C++, например).

это сознательное решение, принятое языковыми дизайнерами для сохранения кода от ошибок, когда число было использовано в условии. Условия нужно принять boolean явное значение.

представьте, если разработчик хотел сравнить foo с 20, но пропустил одно равенство знак:

приведенный выше код будет компилироваться и работать, и побочные эффекты могут быть не очень очевидным.

нет необходимости бросать:

включение bool упрощает написание самодокументированного кода

значение bool равно true или false

преобразует 0 и null в false и все остальное в true.

в других языках false эквивалентно 0, а true эквивалентно 1, но это невозможно в языке C#.

В C# bool на самом деле Boolean структуры, поэтому он не просто представлен как 1 или 0 внутри. Похоже, что создатели языка пошли на явный над неявным подходом в целом с языком. Чтобы выполнить то, что вы пытаетесь сделать (эффективно бросить 1 в true и 0 false ), этого:

вероятно, повторяя другие здесь, но вы не можете бросить int в bool, потому что int не является bool. Это int. Кто бы мог подумать? 😉

также где вы получаете свое исключение? Запуск следующего кода, безусловно, приведет к ошибке компилятора:

вы должны делать некоторые общие вещи, которые не показаны в свой вопрос.

» в других языках false эквивалентно 0, а true эквивалентно 1, но это невозможно в языке C#.»

обязательно напечатает fred is true

Если вы хотите бросить две переменные значения в bool, как var, который имеет (1 и 2 и хочет вернуть 1 для false и 2 для true), я предлагаю :

Читайте также:  почему нельзя поменять разрешение в валоране

можно использовать тернарный оператор, как показано ниже, вместо литых. боол б = истина; int i = 1;

вам, вероятно, лучше с ранее предложенным Convert.ToBoolean(foo) в любом случае, хотя.

Я работаю над поиском пути для учебных целей. Мне нужно случайным образом блокировать некоторые узлы как walkable/blocked.

Источник

Нельзя преобразовать тип boolean к integer

Пишет: Program1.pas(7) : Нельзя преобразовать тип boolean к integer

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Ошибка: нельзя преобразовать тип boolean к integer
Program A123; var a,b,X,Y,interval,p:integer; sum,REZ:real; begin writeln(‘Enter variabiles a.

Ошибка «Нельзя преобразовать тип integer к boolean»
при компиляции ошибка «нельзя преобразовать тип integer к boolean’ как исправить, но чтоб код.

Ошибка : Нельзя преобразовать тип array [1..8] of integer к integer
Дана целочисленная матрица В размером 5х8. Получить массив С из 0 и 1, в котором Ci=1, если в i –ой.

Нельзя преобразовать тип integer к array [1.8] of integer
Естественное слияние.pas(116) : Нельзя преобразовать тип integer к array of integer program cal;.

1. это только в математике умножение. В программирование это вызов подпрограммы с именем n, которой у вас нет.

2. n это boolean, что по вашему должно произойти если отнять от его значения 2 или 1?

3. Дайте условие задачи. Вообще его надо давать в самом начале.

В городе, в котором живут друзья Андрей и Борис, метро состоит из единственной кольцевой линии, вдоль которой на равном расстоянии друг от друга расположены n станций, пронумерованных от 1 до n. Участок линии метро между двумя соседними станциями называется перегоном.

Поезда по кольцевой линии двигаются как по часовой стрелке, так и против часовой стрелки, поэтому чтобы добраться от одной станции до другой, пассажир может выбрать то направление, в котором требуется проехать меньше перегонов. Минимальное число перегонов, которое необходимо проехать, чтобы добраться от одной станции до другой, назовем расстоянием между станциями.

Читайте также:  почему чешется коленка примета

Друзья заметили, что выполняется следующее условие: если загадать некоторую станцию X и выписать для нее два числа: Da — расстояние от станции, на которой живет Андрей, до станции X и Db — расстояние от станции, на которой живет Борис, до станции X, то полученная пара чисел [Da, Db] будет однозначно задавать станцию X.

Например, если n = 4, Андрей живет на станции 1, а Борис живет на станции 2, то станция 1 задается парой [0, 1], станция 2 — парой [1, 0], станция 3 — парой [2, 1] и станция 4 — парой [1, 2].

Их одноклассник Сергей живет в соседнем городе и не знает, на каких станциях живут Андрей и Борис. Чтобы найти друзей, он заинтересовался, сколько существует вариантов пар станций A, B, таких что если Андрей живет на станции A, а Борис — на станции B, то выполняется описанное выше условие.

Требуется написать программу, которая по числу станций n на кольцевой линии определяет искомое количество вариантов.

Входные данные
Первая строка входного файла содержит одно целое число n (3 ≤ n ≤ 40 000).

Выходные данные
Выходной файл должен содержать одно число — искомое количество вариантов.

Пояснения к примерам
В первом примере подходят следующие варианты:
* Андрей живет на станции 1, а Борис на станции 2;
* Андрей живет на станции 1, а Борис на станции 4;
* Андрей живет на станции 2, а Борис на станции 1;
* Андрей живет на станции 2, а Борис на станции 3;
* Андрей живет на станции 3, а Борис на станции 2;
* Андрей живет на станции 3, а Борис на станции 4;
* Андрей живет на станции 4, а Борис на станции 1;
* Андрей живет на станции 4, а Борис на станции 3.

Читайте также:  какой чай мочегонный можно пить

Примеры
входные данные
4
выходные данные
8
входные данные
5
выходные данные
20

Источник

как исправить ошибку в c# неявное преобразование типа int в bool невозможно??

решаю тут задачку по матрицам. мозгов не хватает.
помогите, пожалуйста.

нужно из матрицы удалить строки, в которых все элементы отрицательные. я пока вот на этом этапе. у меня куча ошибок, кроме этой. пожалуйста. даже ПОЖАЛУЙСТА. ПОМОГИТЕ!! все ошибки, которые есть исправить. и вообще в правильном ло я направлении двигаюсь??

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

namespace ConsoleApplication7
<
class Program
<
// функция
public static void SumStolb(int[,] a, int n, int m, int[] sb, out int indexmax, out int smax)
<
int i, j, p;
int s = 0;
smax = 0;
indexmax = 0;
for (j = 0; j 0)
<
// нахожд. суммы пол.эл-в каждого столбца
s = s + a[i, j];
>
//нах-е столбца с макс суммой
if (j == 0)
<
smax = s;
indexmax = 0;
>
else
<
if (s > smax)
<
smax = s;
indexmax = j;
>
>
sb[j] = s; // определение одномерного массива
>
while (i=0; i 0)
<
// нахожд. суммы пол. эл-в каждого столбца
s = s + a[i, j];
>
//нах-е столбца с макс суммой
if (j == 0)
<
smax = s;
indexmax = 0;
>
else
<
if (s > smax)
<
smax = s;
indexmax = j;
>
>
sb[j] = s; // определение одномерного массива

b = new int[p, n];//новая матрица
for (i = 0; i Голосование за лучший ответ

Источник

Портал про кино и шоу-биз