El tipo de datos booleano es uno de los tipos de datos primitivos tanto en C++ como en Java. Aunque puede parecer el más fácil de todos los tipos de datos, ya que solo puede tener dos valores: verdadero o falso , pero seguramente es complicado ya que existen ciertas diferencias en su uso tanto en Java como en C++, que si no se tiene cuidado, puede resultar en un error. La diferencia en su uso en C++ y Java son-
- Declaración: la declaración del tipo de datos booleano en C++ implica el uso de la palabra clave bool , mientras que la declaración en Java se realiza mediante la palabra clave booleano .
Código C++:#include<iostream>
using
namespace
std;
int
main()
{
bool
a =
true
;
// Syntax of Java
// boolean b = false;
return
0;
}
Código Java:
class
A
{
public
static
void
main(String args[])
{
boolean
a =
true
;
// Syntax of C++
// bool b = false;
}
}
- Valor predeterminado: el valor predeterminado es el valor inicialmente almacenado en la variable, cuando se declara, pero no se inicializa en ningún valor. El valor predeterminado del tipo de datos booleano en Java es falso, mientras que en C++ no tiene un valor predeterminado y contiene un valor basura (solo en el caso de variables globales, tendrá un valor predeterminado falso).
Código C++:
#include<iostream>
using
namespace
std;
int
main()
{
// Declaring a boolean type array in C++
bool
a[5];
int
i;
for
(i=0; i<5; ++i)
{
cout << a[i] <<
" "
;
}
return
0;
}
Todos los valores almacenados en la array en el programa anterior son valores basura y no son fijos.
Código Java:
class
A
{
public
static
void
main(String args[])
{
// Declaring a boolean type array in Java
boolean
a[];
a =
new
boolean
[
5
];
int
i;
for
(i=
0
; i<
5
; ++i)
{
System.out.println(a[i]);
}
}
}
Producción:
false false false false false
Todos los valores en la array a serán falsos por defecto, como se ilustra en el resultado anterior.
- Uso en expresiones matemáticas: una diferencia importante es que las variables de tipo de datos booleanos no se pueden usar en expresiones matemáticas en Java, ya que darán un error, mientras que se pueden usar fácilmente en C++.
El motivo de este comportamiento es que las variables booleanas no se convierten en valores enteros (0 o 1) en Java, por lo que no se pueden usar de esa manera.
Código C++:
#include<iostream>
using
namespace
std;
int
main()
{
int
a;
bool
b =
true
;
bool
c =
false
;
a = b + c;
cout << a;
return
0;
}
Producción:
1
La salida será 1, ya que verdadero se convertirá en valor 1 y falso se convertirá en valor 0, por lo que almacenará 1, mientras que el mismo código dará un error en Java, como se muestra a continuación:
Código Java:
class
A
{
public
static
void
main(String args[])
{
int
a;
boolean
b =
true
;
boolean
c =
false
;
//The following line will give an error
a = b + c;
System.out.println(a);
}
}
- Uso con operadores relacionales: en Java, las variables booleanas no se pueden usar con operadores relacionales como <, >, <= y >= , mientras que en C++ se pueden usar de esta manera. Sin embargo, se pueden usar con los operadores == y != tanto en Java como en C++.
Esto puede atribuirse al hecho de que los operadores relacionales operan en valores numéricos y las variables booleanas no se almacenan como valores numéricos en Java, pero se almacenan así en C++ ( falso se almacena como 0 y verdadero como 1).
Código C++:
#include<iostream>
using
namespace
std;
int
main()
{
bool
a =
true
;
bool
b =
false
;
if
(a > b)
{
cout <<
"a is greater than b"
;
}
else
{
cout <<
"a is smaller than b"
;
}
return
0;
}
Producción:
a is greater than b
Código Java:
class
a
{
public
static
void
main(String args[])
{
boolean
a =
true
;
boolean
b =
false
;
//The following line will give an error
if
(a > b)
{
System.out.println(
"a is greater than b"
);
}
else
{
System.out.println(
"a is smaller than b"
);
}
}
}
- Valor de punto flotante: en C++, los valores enteros flotantes se pueden asignar fácilmente a una variable booleana, ya que se convertirán implícitamente en booleanos, mientras que hacerlo en Java dará como resultado un error.
Código C++:
#include<iostream>
using
namespace
std;
int
main()
{
// storing integer value in bool type variable
bool
a = 7;
// storing floating value in bool type variable
bool
b = 7.0;
cout << a <<
" "
<< b;
return
0;
}
Producción:
1 1
La salida anterior da como resultado que almacenar cualquier valor en una variable booleana que no sea 0, dará como resultado que se almacene 1 en esa variable.
Código Java:
class
a
{
public
static
void
main(String args[])
{
// invalid assignment in Java
boolean
a =
7
;
// invalid assignment in Java
boolean
b =
7.0
;
System.out.println(a);
System.out.println(b);
}
}
- El tamaño del tipo de datos booleano en C++ es de 1 byte, mientras que el tamaño del booleano en Java no está definido con precisión y depende de la máquina virtual de Java (JVM).
Los valores booleanos en Java siempre toman más de un byte, pero cuánto más depende de dónde se almacena el valor: en la pila o en el montón. La JVM utiliza una celda de pila de 32 bits, lo que hará que cada valor booleano ocupe la celda de pila completa de 32 bits. Sin embargo, el tamaño de los valores booleanos en el montón depende de la implementación.
Este artículo es una contribución de Mrigendra Singh . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA