**Mientras más crecen nuestros programas, más lógica, complejidad y niveles añadimos. Estos niveles son el alcance que tienen nuestras variables, es decir, los lugares dónde pueden ejecutarse o no.
Estos niveles (en parte) son representados por las llaves ({ ... }) que envuelven nuestro código. Por lo tanto, entre más llaves envuelvan nuestro código, estaremos más niveles dentro y el alcance de las variables que definimos será un poco más limitado.
Solo podemos usar una variable si la definimos antes, en el mismo nivel o alguno anterior. Pero si declaramos una variable en un nivel posterior al resto de nuestro código, no podremos modificarla a menos que el código esté en su mismo nivel.
Por ejemplo:
// Primer nivel:boolean condicion =true;int numero1 =1;// Segundo nivel:if(condicion){// podemos modificar variables del primer nivel,// incluso desde el segundo nivel: numero1++;// También podemos crear y modificar // nuevas variables en este nivel:int numero2 =10; numero2++;}// Si volvemos al primer nivel, podemos seguir usando// y modificando las primeras variables:numero1--;// Pero si salimos del segundo nivel no podemos volver a acceder// a las variables que creamos allí:System.out.println(numero2);// ERROR!
La sentencia ELSE es todo lo contrario a la sentencia IF: en vez de ejecutar una parte del código si la condición es verdadera, solo lo hará si la condición NO se cumple:
boolean isBluetoothEnabled =false;int filesSended =3;if(isBluetoothEnabled){ fileSended++;System.out.println("Archivo enviado");}else{System.out.println("El Bluetooth no está activado");}```**
A lo que se refiere con Alcance/Scope es que existen dos tipos de declaracion para variables:
Las variables globales: Se definen antes de entrar a una funcion o proceso y que como su nombre indica pueden ser llamadas a procesos en cualquier lugar ya que fueron previamente declaradas. (USO PUBLICO PODRIA DECIRSE)
Las variables locales: Son las que se definen para un proceso en especifico en un funcion especifica y solo van a ser reconocidas para esa funcion o proceso, es decir que si intentamos hacer la llamada a una variable local en otra funcion que no sea la de origen no la reconocera como declarada.(USO PRIVATIZADO)
Gracias Programación Estructurada!
Gracias por el aporte! =)
Lo que pasa en las Vegas se queda en las Vegas...
Lo que pasa dentro de el scope se queda en el scope.
Más claro, imposible. Gracias por el ejemplo XD
mejor no lo pudiste decir
java tiene algo muy parecido a un if, se utiliza principalmente para asignación ya que devuelve un dato.
Sintaxis:
condicion ? (lo que pasa si es verdadero) : (lo que pasa si es falso);
Eje:
boolean par =true;int a;a = par ?2:3;//ahora a vale 2par =false;a = par ?2:3;//ahora a vale 3
Si lo he visto , y lo busqué en internet para recordar xD , me acordé que era ternario. En sí se llama: Operador condicional ternario "?".
Resumen
Variables globales: Las que se pueden utilizar en todo el programa, no se encuentran declaradas dentro del cuerpo de alguna función o método.
Variables locales: Se encuentran declaradas en el cuerpo de alguna función o método y sólo se utilizan dentro de la misma.
¡Bueno! Tu abstracción de la clase esta muy bueno.
hay una forma de anidar la sentencia if y else en una sola pero no se si es una buena practica
int edad =12; boolean adulto; adulto =(edad >=18)?true:false;System.out.println("es mayor de edad :"+adulto);``
Más que anidar sería simplificar código el cual lo has conseguido con el operador ternario por el resto me parece un código muy interesante.
El operador ternario es una buena practica cuando se retorna algo diferente a un booleano si se cumple la condición lógica, en el caso de tu ejemplo el operador sobra porque la condición implicitamente ya retorna el booleano, se podría dejar como:
adulto = (edad >= 18)
Tambien existe en java, else if, que permite una nueva validacion del codigo,
if (condicion 1)
{
}
else if (condicion 2)
{
}
else // en caso que no se cumplan ninguna de las 2 condiciones previas
{
}
Muy util tenerlo en cuenta
alguien me puede explicar como funciona el tipo de dato boolean
Los booleanos simplemente son dos valores: true y false. Generalmente, trabajan con operadores relacionales (<, >, ==, ===).
Por ejemplo:
4 > 3 regresaría true.
8 < 7 regresaría false.
Van un poco más allá, pero es lo más importante si vas iniciando.
Te recomiendo que tomes el curso gratis de programación básica o el curso de introducción al pensamiento lógico, ambos cursos explican muy bien lo que es el booleano.
Esto proviene del álgebra de Bool, donde prácticamente una afirmación puede ser cierta, o puede ser falsa, y se pueden jugar con operadores lógicos tales como "And", "Or" y "Not"
Los booleanos siempre usan "true" o "false" como únicos dos valores
Al usar operadores lógicos podemos decir que:
Si una cosa es trueY otra cosa es true entonces, la sentencia completa será true
Te recomiendo este video de Freddy donde lo explica extremadamente bien:
@youtube
muchas veces esas preguntas de por qué pasa esto si está declarada, sin tomar en cuenta el alcance
Según veo el "If "y el "else" siempre irán de la mano en la creación del código..?
No necesariamente, si no existe el else y de no cumplirse al condición del if, sigue el flujo del programa sin ejecutarse el código dentro de las llaves del if.
if (a > b) {
System.out.println("a es mayor que b");
}
//solo que tu así lo requieras, puedes omitirlo, y si lo haces sin else el flujo de tu script, seguira con el flujo tras haber entrado a la condición de tu if si esta se cumple.
el "scope" (alcance) se refiere a la visibilidad y accesibilidad de las variables, métodos y clases dentro de un programa. El alcance determina desde qué partes del programa se puede acceder a una variable o invocar un método y durante cuánto tiempo se mantendrá su valor.
Java define varios niveles de alcance, que incluyen:
Alcance de clase (Class scope): Las variables y métodos declarados a nivel de clase están disponibles para todas las instancias de la clase. Estas variables se conocen como variables de instancia y pueden ser accedidas utilizando una instancia de la clase.
Alcance de método (Method scope): Las variables declaradas dentro de un método solo son visibles y accesibles dentro de ese método. Estas variables se conocen como variables locales y se crean cuando se entra al método y se destruyen cuando se sale de él.
Alcance de bloque (Block scope): Las variables declaradas dentro de un bloque de código delimitado por llaves ({}) solo son visibles y accesibles dentro de ese bloque. Esto incluye bloques de código dentro de métodos, bucles, condicionales y otros bloques anidados.
Alcance de parámetro (Parameter scope): Los parámetros de un método tienen un alcance limitado al interior del método. Estos parámetros son variables locales que reciben valores cuando el método es llamado y cesan de existir una vez que el método se completa.
Es importante comprender y manejar correctamente el alcance en Java para evitar conflictos de nombres, proteger la integridad de los datos y promover una buena estructura de programación. Al delimitar adecuadamente el alcance de variables y métodos, se mejora la claridad, mantenibilidad y eficiencia del código.
Digamos que las llaves actúan como una prisión y las variables contenidas dentro de ellas, solo existen en el ámbito de las llaves que las contienen.
Mientras que las que están fuera, tienen un alcance global y pueden ser accedidas en cualquier parte del código.
En el caso de condición está libre y es de acceso global... como dumbo aqui todo feliz y volando
Mientras que i está presa dentro de las llaves de nuestro condicional como dumbo aqui todo triste y encerrado
Deberia ser fileSent hehe :)
¿En que momento es recomendable usar variables globales?
Para variables que se requieren en todo el programa, mientras que las locales solo las usare en un lugar o función puntual del código.
Excelente explicación
A lo que se refiere con Alcance/Scope es que existen dos tipos de declaracion para variables:
Las variables globales: Se definen antes de entrar a una funcion o proceso y que como su nombre indica pueden ser llamadas a procesos en cualquier lugar ya que fueron previamente declaradas. (USO PUBLICO PODRIA DECIRSE)
Las variables locales: Son las que se definen para un proceso en especifico en un funcion especifica y solo van a ser reconocidas para esa funcion o proceso, es decir que si intentamos hacer la llamada a una variable local en otra funcion que no sea la de origen no la reconocera como declarada.(USO PRIVATIZADO)