Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 153, средняя оценка - 4.69
alfer
1 / 1 / 0
Регистрация: 21.04.2010
Сообщений: 38
#1

Тип bool - C++

26.04.2010, 02:58. Просмотров 24034. Ответов 9
Метки нет (Все метки)

Может кто-нибудь поможет на простейшем но понятном примере объяснить как работает тип bool. Знаю что это тип может быть ложный или истинный но что-то никак его работу не могу понять.... для чего он нужен...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.04.2010, 02:58     Тип bool
Посмотрите здесь:

Тип BOOL - C++
Что API функции возвращают в качестве TRUE? 1? Или любой не 0?

тип bool ошибка обработки - C++
при вводе любого значения отличного от 0 или 1 тело в условии выполняется, т.е. введённое число 100 в type генерирует исключение: bool...

Тип bool возвращает 1,а не true - C++
Задание: Даны числа A, B, C (число A не равно 0). Рассмотрев дискриминант D = B2 − 4·A·C, вернуть значение true, если квадратное...

Почему компилятор не понимает тип bool? - C++
#include <stdio.h> #include <iostream .h> #include <fstream.h> #include <iomanip.h> #include <math.h> #include <string.h> ...

Обработка ошибок cin (тип bool) - C++
Доброго времени суток. Собственно, проблема. Надо поймать все ошибки при вводе в тип bool: буквы, ентеры, пробелы, цифры, отличные от 0 и...

Можно ли каким-то образом наследовать тип bool - C++
Здраствуйте, можно ли каким то образом наследовать тип bool типо что бы 1 - man типо что бы 0 - woman что то в таком роде: class...

Можно ли сделать бесконечный цикл с while, используя тип bool? - C++
... bool f; f=false; while(f=false) { ... ... ... if(....)//какое-то условие f=true;//цикл прерывается

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
M128K145
Эксперт С++
8284 / 3503 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
26.04.2010, 03:03     Тип bool #2
C++
1
2
3
4
5
6
7
8
9
10
11
bool flag;
int n;
std::cin>>n;
if(n > 0)
    flag = true;
else
    flag = false;
if(flag) //flag == true
    std::cout<<"n > 0";
else
    std::cout<<"n <= 0";
Он используется для проверки логических условий или как флаг состояний, как выключатель - ВКЛ и ВЫКЛ (true и false)
KHAV
5 / 5 / 1
Регистрация: 19.04.2010
Сообщений: 18
26.04.2010, 03:05     Тип bool #3
Пусть my_variable имеет тип bool
C
1
2
3
4
5
if (my_variable) {
  printf("True!\n");
} else {
  printf("False!\n");
}
равнозначен коду
C
1
2
3
4
5
if (my_variable != 0) {
  printf("True!\n");
} else {
  printf("False!\n");
}
alfer
1 / 1 / 0
Регистрация: 21.04.2010
Сообщений: 38
26.04.2010, 03:22  [ТС]     Тип bool #4
Т.е. по умолчанию он получается является как true?

C++
1
2
3
4
5
6
7
8
if(n > 0)
    flag = true;
else
    flag = false;
if(flag) //flag == true - вот здесь
    std::cout<<"n > 0";
else
    std::cout<<"n <= 0";
rangerx
1932 / 1541 / 141
Регистрация: 31.05.2009
Сообщений: 2,911
26.04.2010, 03:22     Тип bool #5
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
 
int main()
{
    bool a = 1 < 2;
    bool b = 1 > 2;
 
    std::cout << std::boolalpha << a << std::endl;
    std::cout << std::boolalpha << b << std::endl;
    return 0;
}
M128K145
Эксперт С++
8284 / 3503 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
26.04.2010, 03:27     Тип bool #6
alfer, у него нету значения по умолчанию. Любое значение отличное от 0 - true, равное 0 - false.
Просто при проверке сравнение с true можно опускать, так же как и сравнение с false, но тогда для false надо писать с отрицанием
C++
1
if(!flag)
rangerx, ну зачем же так...
alfer
1 / 1 / 0
Регистрация: 21.04.2010
Сообщений: 38
26.04.2010, 03:32  [ТС]     Тип bool #7
Цитата Сообщение от M128K145 Посмотреть сообщение
alfer, у него нету значения по умолчанию. Любое значение отличное от 0 - true, равное 0 - false.
Просто при проверке сравнение с true можно опускать, так же как и сравнение с false, но тогда для false надо писать с отрицанием
А кажись понял, т.е. если ставим просто (flag) то это истина, если (!flag) то ложное. Ну т.е. как и везде отрицаем знаком !
M128K145
Эксперт С++
8284 / 3503 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
26.04.2010, 03:37     Тип bool #8
Запись
C++
1
2
3
4
5
if (flag == true) 
// эквивалентна записям 
// if (flag)
// if (flag != 0)
// if (flag != false)
Запись
C++
1
2
3
4
5
if (flag == false)
// эквивалентна записям 
// if (!flag) 
// if (flag == 0)
// if (flag != true)
Цитата Сообщение от alfer Посмотреть сообщение
если ставим просто (flag) то это истина, если (!flag) то ложное
не "то это истина", а "проверка на истинность условия"

Цитата Сообщение от alfer Посмотреть сообщение
отрицаем знаком !
Да, это логическое отрицание
C++
1
2
3
&& - логическое И
|| - логическое ИЛИ
!  - логическое НЕ
alfer
1 / 1 / 0
Регистрация: 21.04.2010
Сообщений: 38
26.04.2010, 03:39  [ТС]     Тип bool #9
M128K145, вот за последнее разъяснение огромное спасибо!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2010, 05:37     Тип bool
Еще ссылки по теме:

error C3168: bool: недопустимый базовый тип для перечисляемого типа - C++
В Visual C++ 2005 это не вызывает ошибки. А почему в Visual C++ 2010 ошибка? enum State:bool{ON=true, OFF=false}; // error C3168:...

Можно ли в С++ создать матрицу, строки которой имеют разный тип (например, 1-я строка - bool, 2-я - char)? - C++
:p Привет всем. У меня такой вот &quot;тупой&quot; вопрос. Можно ли в С++ создать матрицу например 2 на 8 где первая строка имеет тип bool а вторая...

bool+bool=string - C++
Здравствуйте! Прошу помощи в задаче, существует 4 функции, возвращающие 1/0, нужно эти bool последовательно соединить в string. Т.е....

Почему тип "bool" работает в файле с расширением .cpp и не работает в файле с расширением .c? - C++
Объясните, пожалуйста, почему тип &quot;bool&quot; в одной и той же программе работает в файле с расширением .cpp и не работает в файле с...

Bool на с++ - C++
Здраствуйте =) #include &lt;iostream&gt; using namespace std; int main() { int a; int b; int n; cin&gt;&gt;n; for (int...


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

Или воспользуйтесь поиском по форуму:
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
26.04.2010, 05:37     Тип bool #10
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdbool.h> /* это для C99 */
 
bool func(int a, int b)
{
    return a > b ? true : false;
}
 
...
 
if (func(1, 2) == false) {
    printf("error\n");
    exit(EXIT_FAILURE); /* можно return EXIT_FAILURE */
}
 
printf("right!\n");
то есть это не только для флажков
Yandex
Объявления
26.04.2010, 05:37     Тип bool
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru