✅✅ ✅ ✅ ✅ Todos mis cursos gratuitos 👉 www.pildorasinformaticas.es ✅✅ ✅ ✅ ✅ 🚀 ¿Quieres ejercicios? ¿Quieres más temario? 👉 www.pildorasinformaticas.es/course/java-tutorizado/🚀 🚀 ¿Quieres que te resuelva las dudas de Java? 👉 www.pildorasinformaticas.es/course/java-tutorizado/ 🚀 💥💥💥 Siempre seguiré subiendo cursos gratuitos por aquí. Gracias a todos por seguirme. 💥💥💥
Lo que más me gustan de tus cursos, son los ejemplos que son tan sencillos y simples que se nota que son ejercicios bien pensados para ejemplificar el tema. Saludos
Hola, yo también estoy haciéndolo por primera vez y la verdad es un lujo la forma de explicar los temas. Al tema treinta más o menos, de momento se va llevando bien. He visto varios cursos y como este profesor no he visto ninguno, lo cual no quiere decir que no los haya. Un saludo a todos y por supuesto al CREADOR. Gracias
@@albertoLopez-mx4bg Que bueno mi hermano, la calidad pedagogica del profe es sobresaliente, a darle que queda mucho por delante y a ver si a fin de año tengo mi primer puestro trainee. un abrazooo
Muchas gracias por tus cursos, la verdad es que me están siendo de mucha ayuda. Gracias a ti estoy pudiendo llevar a delante mis estudios. Estoy recomendando tu curso a mis compañeros y se los recomiendo a todo el que quiera iniciarse en esto de Java. Muchas Gracias. Saludos.
Aquí voy de nuevo en el 20. Tuve una frustración con el mundo del desarrollo el año pasado porque me contrataron en una empresa para hacer front con React, pero no fui capaz y me acarreó problemas. Pero aquí vamos de nuevo aprendiendo. Primeros 20 y muchas ganas de seguir. Gracias Profe por todo! Saludos.
hola. muchas gracias por todo el tiempo que le has dedicado a estos tutoriales. acabo de terminar un curso del sef en el que te enseñan a programar es mas te dan un certificado de nivel 3 lo que equivale a efectos practicos a un grado superior pero.... me rio yo de ese certificado, con quien realmente etoy aprendiendo es contigo, tanto java como php y no me pongo con mas por que no tengo tiempo con las practicas y de mas. bueno lo que queria decir es que muchas gracias por tu tiempo y ayudar difundiendo el conocimiento. gracias una y mil veces.
Voy siguiendo este curso a razón de capítulo por día. He empezado a preguntarme si dentro de 200 capítulos voy a recordar lo que vi en los primeros. Entiendo que los conocimientos se van asentando a base de práctica, pero aun así he decidido utilizar, en paralelo, una web (hay varias) que propone ejercicios, para ir obligándome a pensar, en vez limitarme a copiar y entender lo que explica el profe. Dicho sea de paso, este curso es fantástico. En algún momento empezaré el de python. Mi agradecimiento al profesor. Con este tipo de recursos la vida en un pueblo no tiene nada que envidiar a la de la ciudad.
Miles de gracias Juan por tan geniales cursos que impartes. Admito ser un novato en esto de la programación, sin embargo en un par de horas cree un código que permite a partir de los coeficientes de una ecuación de seguno grado, hallar las raices. Quedó genial!!!! Quedó a prueba de fallos y hasta muestra resultados complejos y trabaja correctamente los redondeos. Gracias por tanto y.... a seguir haciendo código!!!!
Yo recientemente empecé a seguir tus videos y este ejercicio me lo tomé por "adelantado", escuché que querías e hice el código por mi cuenta para luego comparalo. No lo hice como tú, pero apliqué las cosas que se han dado en el curso. import java.util.Scanner; public class PesoIdeal { public static Scanner menu; public static Scanner dato; public static void main(String[] args) { // Peso ideal. menu=new Scanner(System.in); dato=new Scanner(System.in); int empezar; do{ System.out.println("¿Es hombre o mujer?
1.-Mujer 2.-Hombre
Escoja una opción:"); int sexo=menu.nextInt(); switch (sexo){ case 1: System.out.println("Por favor introduzca su altura"); double altura=dato.nextDouble()*100; double resultado=altura-120; System.out.println("Su peso ideal es: "+ resultado); break; case 2: System.out.println("Por favor introduzca su altura"); altura=dato.nextDouble()*100; resultado=altura-110; System.out.println("Su peso ideal es: "+ resultado); } System.out.println("Pulse 3 para volver a empezar"); empezar=menu.nextInt(); }while(empezar==3); } }
Excelente video Juan. Yo lo terminé de otra manera, haciendo la operación directamente en el System.out.println ya que había convertido el int con el Integer.parseInt. Quedó así y funciona: import javax.swing.*; public class Peso_Ideal {
public static void main(String[] args) {
String genero="";
do{ genero=JOptionPane.showInputDialog("Hombre o Mujer?");
La verdad que no entiendo como este chico puede tener pulgares hacia abajo , lo explica todo muy bien y es muy buen curso , muchas gracias por el tutorial
No se asusten con la fórmula, realmente esa no se usa, sino algunas que tienen en cuenta la complexión (pequeña. mediana. grande) y la edad, aparte del género. Por lo que el peso "ideal" usualmente es algo mayor al que pone en ese ejercicio. Ej:hombre complexion media 20-40 años 175cm peso ideal es 65-70kg mientras que si la complexión fuese grande el peso ideal sería 70-77kg. Fuera de eso tremendo curso, muchas gracias por salvarme de la locura en estos días de cuarentena. Me ha dado por aprender o "reaprender" a programar gracias a tus videos, hace 10 años cuando tenía 15 pasé lo que en españa sería un FP de informática, html, msql, c++, php, pero no recuerdo nada, más allá de las cosas básicas como los conceptos etc. Tu curso me está ayudando a seguir el camino después de 10 años sin tocar nada relacionado a la informática. Muchas gracias.
Hola profe Descubrí este curso y esto super pegada, sin embargo no entiendo por que usa && en vez de ||, las dos condiciones no se dan a la vez, es la una u la otra, de hecho cuando usted explica lo dice, pero el código es otra cosa Agradezco infinitamente este curso, super bien elaborado, usted cuida el mínimo detalle, no hay ni una palabra de mas, todo es limpio y muy bien organizado. La verdad este curso vale oro, no lo quite, luego de este quiero hacer el de Python. Le envío un fuerte abrazo, que lo anime a seguir compartiendo sus conocimientos de forma tan generosa con todos nosotros.
Muchas gracias por el comentario Ana. me alegro de que te guste tanto el curso. No te preocupes que yo no pienso quitar el curso de esta plataforma. En cuanto a tu duda, imagino que te refieres al operador && que hay en la condición del while. Si que se cumplen las dos condiciones a la vez, por ejmplo si el usuario introduce la letra "Z" (o cualquier otra cosa) esa letra Z es diferente de "H" y también es diferente de "M" luego entonces si que cumple ambas condiciones. Un saludo!
Tuve tambien ela misma pregunta, incluso probe con ||, pero efectivamente con 'or' no funciona, y es q lo q el parametro de dice es q el valor no puede ser ni H ni M para q se repita, , si pones H 'o' M, pues le das a entender que es pass siempre y cuando cumpla una de las 2 condiciones, pero no ambas juntas.
Tienes que utilizar el operador && ya que la condición estipula que ambos deben ser falsos para seguir ejecutando el do. Si utlizas || la condición que le estás pasando es que "Mientras la letra sea distinta de H o M, sigue pidiendo una letra". Sería imposible de resolver, ya que una de las dos sentencias siempre será falsa e ya que H es distinto de M y M es distinto de H, y quedaría en bucle eternamente.
Te ayudaría a entender los operadores lógicos viendo un poco de lógica justamente... Conjunción, disyunción, negación, condicional y bicondicional... En cuanto a programación, si usas el operador OR (||) el while al ver que ya la primera condición no se cumple, prosigue en revisar la segunda, en cambio con el AND (&&) si ya la primera condición no se cumple rompe el bucle iterativo y sigue con el código que está debajo. Suele confundir al principio pero de a poco vas a ir entendiendo la lógica detrás de la programación. Creeme que luego de aprender a programar vas a ser una maestra en el debate y la argumentación ;)
Para agregar algo que no explica Juan es que con los operadores lógicos, en el caso del && primero evalúa la primera condición, en caso que sea verdadera no sigue evaluando las demás condiciones, directamente la da por cumplida. En caso de ser falsa prosigue a evaluar las demás. En contraposición, con el operador ||, si ya la primera condición es falsa da por falso todo el argumento. Al principio puede resultar confusa esta diferenciación y suele generar dudas a la hora de decidir cuál elegir. Puede ayudar un poco el concepto de cada uno: El && (AND) es una condición NO EXCLUYENTE, esto quiere decir que, por ejemplo en el caso de tener 4 condiciones, por más que la primera, la segunda o incluso la tercera condición del argumento sean falsas NO EXCLUYE que la 4ta pueda ser verdadera. El || (OR) SI ES EXCLUYENTE, ya que en caso de tener 4 condiciones dentro de un argumento, si al revisar la primera resulta ser falsa no continúa evaluando el resto ya que no es necesario debido justamente a la EXCLUSIVIDAD argumentativa. Espero que sea de ayuda para los que se están iniciando en el mundo de la lógica y la programación.
Desde Valencia (España). Muy buen curso, muy buena forma de explicar, muy entretenido. Soy programador en VB, pero este curso lo quise empezar desde cero. Enhorabuena Juan Excelente curso.
un excelente trabajo, no puedes ser mas claro, y no te da pereza recordad cualquier detalle, lo que es de gran utilidad para nosotros. recomendable al 100&. un abrazo maquinaaaa!!!
Por si quereis tomar nota, el while se puede simplificar: while (!genero.equalsIgnoreCase("H") && !genero.equalsIgnoreCase("F")); con el simbolo ! delante quiere decir lo mismo que == false.
Pufff ese While del video me dejó descolocado, yo usé el ^ porque te hace escoger entre uno o el otro, (genero.equalsIgnoreCase("H") ==true ^ genero.equalsIgnoreCase("M")==false); Pero normalmente hubiera usado el ; while (!genero.equalsIgnoreCase("H") && !genero.equalsIgnoreCase("F")); , creo que se lee mejor,lo asimilas mejor.
Eres muy grande tío, no sé si a estas alturas seguirás leyendo los cientos de comentarios que te escribe la gente agradecida, pero aquí va mi intento. Tengo pensado meterme a una ingeniería informática porque estas cosas me encantan, y a sido encontrar tu canal y en tres días me llevo vistos 20 vídeos. Están explicados muy detalladamente pero no de manera pesada por lo tanto es perfecto para seguir el contenido sin perderse en ningún momento. GRACIAS.
Excelente profe!! Para el que le sirva hice un simple cambio con la condicion booleana del while. while(!genero.equalsIgnoreCase("H") && !genero.equalsIgnoreCase("M")); Cambiando ==false por ! al principio de la cadena. Saludos.
(10:54) Aquí la condición se puede expresar de esta manera : while( !genero.equalsIgnoreCase("H") && !genero.equalsIgnoreCase("M") ); o también : while( ! (genero.equalsIgnoreCase("H") || genero.equalsIgnoreCase("M")) );
Decidí iniciar este curso, porque me quiero sumergir en el desarrollo de software para móviles el próximo año, pues solo decir muchas gracias al maestro por compartirlos su conocimiento.
Dios mío, pensé que nunca entendería la programación (estaba en un error). Eres el mejor. Explicaciones claras y estructura del curso muy estimulante . Muchas gracias !!!
Javier si si Gracias por tu comentario. Me alegro de que te gusten los vídeos. Veo que estás en los comienzos y es bueno que lo entiendas. Espero que estés preparado para vídeos futuros donde la cosa se pone algo más complicada ya que Java es un lenguaje de programación algo complejo. Seguro que si... Un saludo
Un pequeño consejo para todos los que estamos aprendiendo. A pesar que no manejo el Ingles me ha sido mas practico que debajo de cada Código/Instrucción de los ejercicios realizar un comentario con la traducción al Español asi es mas sencillo comprender mejor que tener que aprender de memoria el Código. Y gracias Juan de corazón por darnos un poco de tus conocimientos de forma excelente y aplicable
yo en el 2022 viendo este tuto! excelentes videos, a este ej le puse un if que te dice que estas gordo o muy flaco dependiendo tu peso ideal, me gusta agregar cosas para practicar!!!
hola!! decirte que estoy haciendo este curso, y que me considero una de las personas que somos desde 0 jaja. Darte mi enhorabuena porque es fantástico, hay dias que me veo hasta 3 seguidos y luego los vuelvo a ver para aclararme al 100%. Lo cual ,me encantaría si pudiese ser dentro de tus posibilidades de disposibilidad, no se si me explico, que me pudieras contestar a algunas pequeñas dudas o suposiciones mias. Quiero aprenderlo tan bien que no quiero pasarme ni el mas minimo detalle, soy de las personas que quemo la api java, y aunque no se ingles estoy hay mirando y traduciendo. Espero ya también aprovechando ya esto, que encima aprendiera ingles!! sería genial, porque lo comparo como el capitulo ese que decias que era como sacarte el carnet de conducir, te sacabas un teorico y una practica y te lo daban. Pues a mi me esta pasando como con el carnet de conducir, que tenía tanta ilusión por tenerlo que me hiba a esforzar al máximo para poder conseguirlo y en el menor tiempo posible. De verdad mi más sincera enhorabuena por este curso y muchisimas gracias por querer compartirlo con nosotros. (los que queremos, pero por circunstancias en la vida no podemos optar a estudiar a ello). No me enrollo más y te hago mi pregunta... **¿Anque no se usara el método Do while... cuando le damos a " intentos++;" el valor aunque fuera de 0.000000008 con esa instrucción se convertiría en 1.000000008, por lo cual ya minimo seria el número 1 no?? ** soy un poco dificil explicandome... espero que me ayas entendido o más o menos lo que he querido decirte/preguntarte. Un saludo!
+Jonathan Sanchez Hola !! Muchas gracias por el comentario. Me alegro de que te gusten los vídeos. Espero que mantengas esas ganas y buena predisposición durante todo el curso, incluso cuando las cosas se pongan un poco difíciles. También son buenas esas virtudes que tienes para la vida en general. Es correcto lo que dices. intentos++ sumaría 1 a cualquier valor anterior que tuviera la variable intentos. Un saludo
Al hacer este ejercicio dije: De qué habla este man? Vamo a ver. Lo puse en debug y dio la casualidad de que al primer intento se me cerró la boca de una bofetada, pues el número aleatorio que se generó fue cero. "¡Adivinaste en cero intentos!" me dijo. El verdadero joga bonito
Eres un grande, estoy preparando mi examen de septiembre gracias a ti, de lo contrario sería imposible. Muchísimas gracias por este enorme aporte y por tu canal.
Estoy realizando una segunda vuelta tras ver los 125 primeros vídeo y estoy muy satisfecho con lo que he aprendido por el momento. Yo utilizo una estrategia más sencilla puesto que utilizo if y else. ¡Un abrazo compañeros!
El segundo "else if" es redundante (cambiarlo por else). En el bucle while te aseguras que sólo H / M sean los valores introducidos. Excelente contenidos, felicitaciones.
Excelente!!! ¿donde estaba este curso que no lo encontré antes? y ¡vaya que he buscado!, definitivamente te seguiré en los muchos otros cursos que tienes en tu canal. Se que siendo paciente pronto " veremos la luz", solo es ser disciplinado y practicar mucho... saludos y de nuevo gracias
El tema con el && es más fácil de entender si sabes que las dos condiciones tienen que ser True ya que con que una de las dos condiciones sea Falsa el resultado siempre será falso por lo que saldrá del bucle. Mucha gente se vería tentada a poner un || pero aquí aunque tuvieras un True y un False el resultado siempre sería True y volvería a entrar al bucle. También hay que tener en cuenta una cosa y es que cuando se hacen condiciones en negativo lía un poco más a la hora de jugar con los true y los false porque por ejemplo, si pones H lo primero que la mente piensa es que como en la condición pone H es True cuando en realidad estás sacando un False.
else if {tremendamente musculado}!!! entre todo el caos y la cara que se me pone cuando empiezas a programar... he salido de mi propio bucle jajajaja... que bueno!!! :)
Excelente curso. Podemos utilizar también el método showMessageDialog de la clase JOptionPane para mostrar un mensaje de información, en lugar de mostrar un mensaje en la consola. Su sintaxis es: JOptionPane.showMessageDialog(null, mensaje); y aquí también podemos concatenar texto con variables. Por el momento no tenemos conocimiento de lo que debemos pasar en el primer parámetro, por eso déjenlo en null que les va a funcionar.
Son excelentes los videos Felicidades por su empeño!, me confundi un poco en la comparacion, decidi hacerlo de esta forma aunque es mas codigo se me facilito comprenderlo, solo por mencionar yo manejo C# pero estoy siguiendo su curso desde 0. Aqui dejo mi codigo: String genero = ""; boolean H,M; do{ genero = JOptionPane.showInputDialog("Agregue genero H/M!"); genero = genero.toUpperCase(); //Convierto a Mayuscula H = (genero.equals("H")); //asigna falso si no se ingreso H M = (genero.equals("M")); //asigna falso si no se ingreso M }while (H == false && M == false); // Mientras H y M sean false (las DOS) continua el ciclo
Dejame decirte una cosa. Enseñas tan bién, que cuando dejas claro que vas a programar, se programarlo por mi cuenta. Le pongo pausa, lo programo, funciona a la perfección, y veo el video para confirmar que no me pierto de nungún concepto o algo importante xD Eres grande! Y te agradezco muchísimo estos tutoriales :)
Gracias por su dedicación por su tiempo por hacerlo todo ameno y fácil y compartir con la gente que lo necesita y no puede permitirse hacerlo en una academia .
Muy bueno le entendi más que al anterior ejemplo, debo analizarlo un poco más a detalle y con la práctica tendré que ir avanzando, gracias por el aporte...
7:15 Programa para IMC/Peso ideal, jajaajaj! Lo habia hecho cursos atrás a base de if/else/if elses, vamos de una manera totalmente diferente pero que hace lo mismo , solo que he usado más lineas de código y he declarado más variables. Ahora sabría como hacerlo mejor y optimizarlo . Lo hice con IMC que se calcula dividiendo el peso por la altura(m) al cuadrado, lo que complica bastante mas el código. No me quejo, asi por lo menos he desarrollado mi imaginación algo jeje. Muy buen curso , el mejor que hay de java por internet.
!!Genialisimos todos tus videos, muuy bien explicado gracias ya he captado mucho mejor JAVA =D !! y de hecho en la parte donde ponen "Introduce tu altura en cm" yo lo hice diferente para que introduzca la altura normalmente (1.72) y solo multiplicar por 100 (como el video anterior) para que sean los 172 (cm) , Pero lo importante que comprendí jeje ;) double altura = Double.parseDouble(JOptionPane.showInputDialog("Dame tu altura: ")); altura = (altura*100); Saludos y Gracias de nuevo !! =D lml
Hola! Antes de nada decirte que me encanta tu curso y que desde el punto de vista de alguien que ha podido ir a la universidad, da gusto el nivel que tienen tus clases y tu calidad como profesor, me encanta que profundices en todo en lugar de pasar cosas por alto, la forma de comprender algo a la perfección en saber de donde sale cada cosa. Y sin dar mas la chapa, con respecto a lo que dices que la variable ha de ser iniciada antes de ser usada en el bucle, igual es porque lo cambiaron en versiones posteriores de java (estoy usando la 1.8) pero a mi me ha permitido usarla sin iniciarla (solo estaba declarada) de hecho yo hice el programa antes de mirar la clase (para poder comprar el mio con el tuyo) y lo había hecho de esa forma y funcionaba perfectamente. Edito: Vale te he mentido, me acabo de fijar mejor y no es asi, la habia iniciado con una lectura de la variable por consola, solo que yo para poner un mensaje diferente para el primer intento hago la lectura fuera del bucle.
Sefora Martin: Correcto!! Es un programa ideal para el día 28 de Diciembre. Es un detalle que ya me han comentado varias veces y efectivamente tenéis razón. El que habla mete la pata también muchas veces. Un saludo
En este ejercicio creo que están invertidos los valores del if y el else if de la primera parte. Tendría que ir: if(numeroaleatorio){} Sino tira número random nuevo en cada vuelta del ciclo. Al menos eso me pasaba y lo solucioné así.
Otra forma seria inicializar la variable con un negativo xd. Bueno eso creo yo, igualmente le agradezco a usted por la dedicación y el tiempo que ocupa para subir estos vídeos que ayudan a mucha gente a entender el hermoso mundo de la programación. Saludos Desde Perú!!!
Saludos Juan. Para el ejemplo del Do-WHILE he utilizado el mismo ejercicio del programa AdivinaELNumero. Esta variante la he utilizado para que una vez se haya adivinado el número, pues preguntar si el usuario quiere jugar nuevamente sin tener que cerrar el programa y volverlo a iniciar. El detalle que tengo es que al preguntar que si quiere jugar nuevamente el programa no se detiene a esperar respuesta y sigue ejecutando todos las instrucciones siguientes dando por terminado el juego. Tal pareciera que hay un conflicto con la variable "RepetirJuago" que al salir del bloque DO se pierde su valor. Te dejo el código por si lo quieres ejecutar en tu ordenador y ver a lo que me refiero. Mucho me serviría si me pudieras ayudar a despejar la posible falla. import java.util.*; public class AdivinaElNumero { public static void main(String[] args) { // En este programa se deberá generar un número aleatorio el cual el usuario deberá adivinar y ver // en cuántos intentos lo logra. int NumOculto = (int)(Math.random()*100); Scanner entrada = new Scanner(System.in); String NomUsuario; int NumUsuario; int intentos = 1; String RepetirJuego; String NuevoIntento = "s"; System.out.println(" - ADIVINEMOS EL NÚMERO - "); System.out.print("Mi nombre es JAFBYR y me gustaría saber cómo te llamas tú... "); NomUsuario = entrada.nextLine(); System.out.print(" "); System.out.println("Pues bienvenido(a) al juego " + NomUsuario + ", empecemos... "); do { System.out.print("Qué número crees que tengo oculto? "); NumUsuario = entrada.nextInt(); while(NumOculto != NumUsuario) { System.out.print("Lo siento, tu número es incorrecto. "); if(NumOculto < NumUsuario) { System.out.print("Intenta con un número menor: "); NumUsuario = entrada.nextInt(); } else { System.out.print("Intenta con un número mayor: "); NumUsuario = entrada.nextInt(); } ++intentos; } System.out.print("Felicidades, en " + intentos + " intento(s) lo has conseguido: " + NumUsuario + " y " + NumOculto + " son iguales.
" ); System.out.print("Quieres que lo volvamos a intentar? : "); RepetirJuego = entrada.nextLine(); } while(NuevoIntento.equalsIgnoreCase(RepetirJuego) == true); System.out.println("Ok, aquí detenemos el juego. Me dio mucho gusto conocerte y jugar contigo. Cuando gustes regresar, aquí estaré esperando. Bye."); } }
Desde Mallorca un saludo para todos, Juan felicidades por las clases la verdad que un >10 jjjjj me hice hasta la lección 34 y he vuelto a repasar y la verdad que muy bien, yo le he añadido un poco mas de dificultad, ya que solo puedo usar el teclado en pantalla ya que tengo un 96% de discapacidad motora, en este ultimo vídeo le añadi las libras y creo que esta bien? import javax.swing.*; public class peso_ideal { public static void main(String[] args) { // TODO Auto-generated method stub String genero=""; do{ genero=JOptionPane.showInputDialog("Introduce tu genero (H/M)");
}while(genero.equalsIgnoreCase("H")==false && genero.equalsIgnoreCase("M")==false); int altura=Integer.parseInt(JOptionPane.showInputDialog("Introduce tu altura cm")); int peso_ideal=0; if (genero.equalsIgnoreCase("H")){ peso_ideal=altura-110; } else if(genero.equalsIgnoreCase("M")){ peso_ideal=altura-120; } System.out.print("Tu peso ideal es " +peso_ideal+ " kilos y en libras " ); double libra=peso_ideal/0.453592338; System.out.printf("%1.0f",libra); } }
Hola Juan. Acabo de empezar, que sepas que estoy aprendiendo tela con tus videos, mejor no lo puedes explicar. Soy nuevo en Java y prácticamente en todo a lo que programación se refiere. He decidio a aventurarme antes de ver el vídeo a hacerlo yo por mi cuenta. Creo que funciona igual que el tuyo pero con un poco más de código y más relio. En fin te dejo el código por su le quieres echar un ojo. Muchas gracias por lo vídeos ya que estás ayudando a muchísima gente a aprender. Un saludo import javax.swing.JOptionPane; public class VIDEO20_DOWHILE { public static void main(String[] args) { String respuesta; String hombre="hombre"; String mujer="mujer"; double altura=-1; do{ respuesta=JOptionPane.showInputDialog("¿Eres hombre o mujer?"); if(respuesta.equals(hombre)==true){ System.out.println("Bienvenido, señor"); } else if(respuesta.equals(mujer)==true){ System.out.println("Bienvenida, señora"); } }while((respuesta.equals(hombre)||(respuesta.equals(mujer)))==false); if(respuesta.equals(hombre)==true){ altura=Double.parseDouble(JOptionPane.showInputDialog("Introduce tu altura")); System.out.println("Al medir " + altura + " cm,"); System.out.print("tu peso ideal es de " + ((altura*100)-100) + " kg" ); } else if(respuesta.equals(mujer)==true){ altura=Double.parseDouble(JOptionPane.showInputDialog("Introduce tu altura")); System.out.println("Al medir " + altura + " cm,"); System.out.print("tu peso ideal es de " + ((altura*100)-110) + " kg" ); } } }
+pildorasinformaticas Hola profesor saludo desde venezuela una pregunta cuando hacemos el objeto Scanner: Scanner entrada = new Scanner(System.in); eclipse recomienda que lo declaremos como private static Scanner entrada; esa forma que recomienda eclipse la usamos para las buenas practicas de programacion Espero que me haya entendido la pregunta
antonio e pildora soy nuevo en java. pero de base de otros lenguajes te puedo decir que si lo puedes hacer aunque es mas complejo. puedes crear una matrix de letras digamos de la a -e hay 5 letras. a b c d e cada una esta en un indice despues lo que debes hacer es crear un random del 0 al 4 y lo asocias a la matrix y te dara letras al azar. tambien no se si se puede. del codigo ascii de la a -z tiene numeros bien lo puedes crear un random que genere esos numeros y despues los pasas a char
Hola Juan ! Mira, he encontrado un ejercicio sobre series numéricas. La serie que hay que programar es esta: 1,5,3,7,5,9,7,11,9,13,… En las posiciones pares se suma 4 y en las impares se resta 2. El código es este: import java.util.*; public class Ejercicio_Operadores2 { public static void main(String[] args) { // TODO Auto-generated method stub int serie = 1; boolean sumar=true; int cont; String cadena="Serie: "; System.out.println("Indique cuantos numeros de la serie quiere ver: " ); Scanner sc = new Scanner (System.in); cont=sc.nextInt(); do{ cadena=cadena.concat(String.valueOf(serie) + " "); cont --; if(sumar==true){ serie+=4; }else{ serie-=2; } sumar=!sumar; }while(cont>0); System.out.println(cadena); }//Fin Main }//Fin Clase Me ha costado un poco entenderlo, pero creo que he captado la idea. Mi pregunta es, si hay alguna forma de hacerlo con Arrays. Que es como yo había pensado en un principio hacerlo. Muchas gracias por tu atención. Un saludo.
Paul Cano Hola !! Así me gusta, que pongáis a trabajar lo que tenemos dentro del cráneo. Sí, se puede hacer con Arrays, pero se complicaría bastante la cosa. Tendrías que trabajar con las posiciones del Array y con el método sort para ordenar los elementos del Array (y seguramente otros que ahora no caigo). Me gustaría tener tiempo para poner ejemplo de todas las dudas y preguntas que me hacéis, pero me resulta imposible... Saludos !!
Casi lo tengo, pero me está dando dolor de cabeza el cómo hacer que haga una operación cuando está en la posición par del Array, y cuando hacer otra cuando está en la posición impar. A ver si alguien se anima jejeje. Y gracias por contestar :-)
jaja ami me paso al principio cando ejecute el programa por primera vez, incluso llegue a pensar que lo habia hecho mal pero no fue asi. Aunque se me ocurres varias forma de solucionar el problema veo la intención por la cual lo hiciste muchas gracias.
En el programa de adivinar el numero también se podría evitar ese error declarando numero=101 en vez de declarar numero=0 porque sabes que el 101 no va a salir nunca ya que es un número del 0 al 100 :D
yo lo que hice fue Random aleatorio = new Random(System.nanoTime()); int generado = aleatorio.nextInt(99)+1; de tal manera que nunca pueda ser 0 y no sea mayor a 100.
@@gonzelos Amigo el objeto Random es excluyente con el numero que le pasas como parametro osea que si le pones 99 tomara de 0 a 98 si le pones 99+1 osea lo que haces es hasta 98+1 =99 no tomara el 100 y el programa toma numeros al azar de 0 a 100 no de 0 a 99 por lo que deben hacer es poner 101 para que excluya el 101 y tome hasta 100 :D
Hola, gracias estoy siguindo este curso ya que estoy estudiando Desarrollador JAVA y estoy un poco perdido, gracias a usted lo veo todo mas claro. Queria saber si en alguno de estos capitulos usted explica el juego del ahorcado. Muchisimas gracias me esta ayudando mucho. Saludos...!
Excelente!!!, lo que no me queda claro es si hace falta para este ejemplo sencillo el "else if(.........)", o si no podemos arreglarno con un simple else, ya que el while se encargo de que genero sea H o M. Es decir el esle if(...) queda mucho más prolijo. Pero es necesario? Gracias por todo el esfuerzo y el tiempo invertidos en este espectacular curso!!!
Lo solucionaría cambiando la variable de numero ingresado por un -1 y ya, sabemos que random no da valores negativos y la condición del while se sigue cumpliendo, o no profe?
Para resolver el problema con el valor inicial de la variable numero, basta inicializarla a un número negativo, por ejemplo int numero = -1; Ese valor no pertenece al rango de enteros que estamos considerando 0
Estimado Juan, se podría solo usar un else, porque en el do while esta condicionado a ser solo H o M por lo que, ya no es necesario! pero son cosas que estoy seguro haces, para que sea didáctico y uno repase las estructuras, Salu2
Buenas. Lo que comentas en el minuto 4:10, cuando si aleatorio = 0, puede ser que el resultado sea absurdo.... pero el programa si se ejecuta. Estoy en lo cierto? al menos en mi ejemplo al salir del while sigue hasta cumplir el System.out.println("Número correcto..."); Gracias
Hace mucho que grabé estos vídeos y no recuerdo exactamente el código, tendría que mirarlo de nuevo. Pero seguramente tengas razón, todo depende de cómo esté construida la condición del while. UN saludo!
Ya me veo capaz de pausar el video una vez explicas lo que se va a realizar y intentar hacerlo yo, pero ahora entiendo lo de se valora programador que sepa hacer codigo extructurado y tenga fácil visualización, que lo que he hecho funciona pero una vez hecho ni yo lo "entiendo". Pero bueno poquito a poquito vamos
No conocía el bucle "do-while" mi solución para el programa anterior fue inicializar la variable "numero" en un valor superior a 100, así también me aseguro de que el bucle se inicie sin el riesgo de que coincida con el numero aleatorio...
la solución para no necesitar el Do While y que nuestro bucle While sea igual de valido y se ejecute por lo menos una vez es iniciar numero por encima de 100 numero=101; con esto aseguraríamos la entrada en el bucle while por primera vez aunque el random fuese 0 ya que ese valor inicial estaría fuera del rango de las posibilidades del programa.
Efectivamente así es. Y me alegro que comentes esto porque recibo muchas preguntas a diario de personas que empiezan en el mundo de la programación y creen que solo hay un camino posible para resolver un problema. Cuando les explico que en programación las alternativas son siempre varias, no lo terminan de entender del todo. Un saludo!!
Hay lenguajes en los que tiene sentido hacerlo y otros en los que no. Ejemplo: en C, NULL se utiliza mayormente cuando se trabaja con punteros, sin embargo en Java al no utilizar punteros por ser un lenguaje de alto nivel se puede utilizar sin problemas como un "elemento vacío"
Ahora entiendo :D. En la primera ejecución del programa con el while me dijo que el numero era correcto y no me solicitó ingresar nada. Fue una de esas casualidades. Y en el primer intento!! :D :D
Excelente...lo felicito!!! Quería saber si conoce de algún enlace o pdf en el se planteen ejercicios desde lo básico hasta lo avanzado para colocar en practica cada vídeo que voy viendo.
Excelente la serie de vídeos, si bien soy ingeniero no poseo conocimientos de programación y hasta el momento voy de maravillas, incluso ya pienso el código antes de que lo escribas así que voy bien encaminado, muchas gracias. Quisiera saber lo siguiente: " }while (genero.equalsIgnoreCase("H")==false && genero.equalsIgnoreCase("M")==false); " Cuando agregas el && podría unir muchas mas condiciones con infinitos && ??, ejemplo: " }while (condicion.uno==true && condicion.dos==false && condicion.tres==false && + ... + && condicion.n==true); "
me gustaria saber tambien que pasa en este caso...igual creo qeu tiene que ver con el tipo de problema que se trate...por que podrias poner un switch con diferentes opciones asi directamente vas al grano!
✅✅ ✅ ✅ ✅ Todos mis cursos gratuitos 👉 www.pildorasinformaticas.es ✅✅ ✅ ✅ ✅
🚀 ¿Quieres ejercicios? ¿Quieres más temario? 👉 www.pildorasinformaticas.es/course/java-tutorizado/🚀
🚀 ¿Quieres que te resuelva las dudas de Java? 👉 www.pildorasinformaticas.es/course/java-tutorizado/ 🚀
💥💥💥 Siempre seguiré subiendo cursos gratuitos por aquí. Gracias a todos por seguirme. 💥💥💥
Profesor estoy retomando la clase , todo bien con el video 20 🤗🤗🤗😎
En el curso, mas adelante hay ejemplos de estructuras de datos?
hola profe empecé hace un año pero me ocupe en otras cosas, pero nuevamente este año vuelvo a retomar el curso, he podido entender mucho mas esta vez.
El mejor profesor de Java Con Excelencia!!!!!
Gracias !! Un saludo
Lo que más me gustan de tus cursos, son los ejemplos que son tan sencillos y simples que se nota que son ejercicios bien pensados para ejemplificar el tema. Saludos
Año 2022 y es el mejor curso que he encontrado :-) Gracias por tan excelente explicación.
Holaa, como venis con el curso?
Hola, yo también estoy haciéndolo por primera vez y la verdad es un lujo la forma de explicar los temas. Al tema treinta más o menos, de momento se va llevando bien.
He visto varios cursos y como este profesor no he visto ninguno, lo cual no quiere decir que no los haya.
Un saludo a todos y por supuesto al CREADOR. Gracias
@@albertoLopez-mx4bg Que bueno mi hermano, la calidad pedagogica del profe es sobresaliente, a darle que queda mucho por delante y a ver si a fin de año tengo mi primer puestro trainee.
un abrazooo
@@Solitariofitness suerte compañero! Saludos Lucía, ya irás contando..
"Tremendamente musculados" son tus conocimientos y la capacidad para compartirlos con claridad, muchas gracias por tu esfuerzo Juan!
Me gusta que seas detallista, es el mejor curso que encontrado por Internet, buen trabajo.
Un fuerte abrazo
David Palau
Muchas gracias por el comentario. me alegro de que te guste. Un saludo!!
"Pero porque soy tremendamente musculado" JAJAJAA
crack
que arte juan jajajaj
jajajajja
JAJAJA me mato de risa ese comentario.
jajajaja xd
Muchas gracias por tus cursos, la verdad es que me están siendo de mucha ayuda. Gracias a ti estoy pudiendo llevar a delante mis estudios. Estoy recomendando tu curso a mis compañeros y se los recomiendo a todo el que quiera iniciarse en esto de Java. Muchas Gracias. Saludos.
ke máquina estas hecho!! yo creo que eres el mejor profesor que he tenido en la vida
Eres demasiado bueno como profesor, pero seguramente seas mejor persona que como profesor. Hace falta mas gente como usted en este planeta.
Aquí voy de nuevo en el 20. Tuve una frustración con el mundo del desarrollo el año pasado porque me contrataron en una empresa para hacer front con React, pero no fui capaz y me acarreó problemas. Pero aquí vamos de nuevo aprendiendo. Primeros 20 y muchas ganas de seguir.
Gracias Profe por todo! Saludos.
animo, y como te fue luego de 3 años? espero que bien. saludos
hola. muchas gracias por todo el tiempo que le has dedicado a estos tutoriales.
acabo de terminar un curso del sef en el que te enseñan a programar es mas te dan un certificado de nivel 3 lo que equivale a efectos practicos a un grado superior pero.... me rio yo de ese certificado, con quien realmente etoy aprendiendo es contigo, tanto java como php y no me pongo con mas por que no tengo tiempo con las practicas y de mas. bueno lo que queria decir es que muchas gracias por tu tiempo y ayudar difundiendo el conocimiento. gracias una y mil veces.
Hola !! Pues muchas gracias por tu comentario. Me alegro de que estés aprendiendo con mis cursos. Un cordial saludo
Voy siguiendo este curso a razón de capítulo por día. He empezado a preguntarme si dentro de 200 capítulos voy a recordar lo que vi en los primeros.
Entiendo que los conocimientos se van asentando a base de práctica, pero aun así he decidido utilizar, en paralelo, una web (hay varias) que propone ejercicios, para ir obligándome a pensar, en vez limitarme a copiar y entender lo que explica el profe.
Dicho sea de paso, este curso es fantástico. En algún momento empezaré el de python. Mi agradecimiento al profesor. Con este tipo de recursos la vida en un pueblo no tiene nada que envidiar a la de la ciudad.
y ahora como vas? ya han pasado 4 meses.
X2
ya han pasado dos años, como te ha ido.
Ya han pasado dos años y un mes cómo te ha ido?
Que webs con ejercicios son esas?
Miles de gracias Juan por tan geniales cursos que impartes. Admito ser un novato en esto de la programación, sin embargo en un par de horas cree un código que permite a partir de los coeficientes de una ecuación de seguno grado, hallar las raices. Quedó genial!!!! Quedó a prueba de fallos y hasta muestra resultados complejos y trabaja correctamente los redondeos. Gracias por tanto y.... a seguir haciendo código!!!!
+Guillermo Montenegro Pintos Eres un portento.... :)) Sin conocimientos previos tiene mérito. Un saludo!!
Yo recientemente empecé a seguir tus videos y este ejercicio me lo tomé por "adelantado", escuché que querías e hice el código por mi cuenta para luego comparalo. No lo hice como tú, pero apliqué las cosas que se han dado en el curso.
import java.util.Scanner;
public class PesoIdeal {
public static Scanner menu;
public static Scanner dato;
public static void main(String[] args) {
// Peso ideal.
menu=new Scanner(System.in);
dato=new Scanner(System.in);
int empezar;
do{
System.out.println("¿Es hombre o mujer?
1.-Mujer
2.-Hombre
Escoja una opción:");
int sexo=menu.nextInt();
switch (sexo){
case 1:
System.out.println("Por favor introduzca su altura");
double altura=dato.nextDouble()*100;
double resultado=altura-120;
System.out.println("Su peso ideal es: "+ resultado);
break;
case 2:
System.out.println("Por favor introduzca su altura");
altura=dato.nextDouble()*100;
resultado=altura-110;
System.out.println("Su peso ideal es: "+ resultado);
}
System.out.println("Pulse 3 para volver a empezar");
empezar=menu.nextInt();
}while(empezar==3);
}
}
Excelente video Juan. Yo lo terminé de otra manera, haciendo la operación directamente en el System.out.println ya que había convertido el int con el Integer.parseInt. Quedó así y funciona:
import javax.swing.*;
public class Peso_Ideal {
public static void main(String[] args) {
String genero="";
do{
genero=JOptionPane.showInputDialog("Hombre o Mujer?");
}while(genero.equalsIgnoreCase("Hombre")==false && genero.equalsIgnoreCase("Mujer")==false);{
int altura=Integer.parseInt(JOptionPane.showInputDialog("Introduci tu altura en cm"));
if(genero.equalsIgnoreCase("Hombre")){
System.out.println((altura-110) + " kg es tu peso ideal.");
}
System.out.println((altura-120) + " kg es tu peso ideal.");
}
}
}
La verdad que no entiendo como este chico puede tener pulgares hacia abajo , lo explica todo muy bien y es muy buen curso , muchas gracias por el tutorial
No se asusten con la fórmula, realmente esa no se usa, sino algunas que tienen en cuenta la complexión (pequeña. mediana. grande) y la edad, aparte del género. Por lo que el peso "ideal" usualmente es algo mayor al que pone en ese ejercicio. Ej:hombre complexion media 20-40 años 175cm peso ideal es 65-70kg mientras que si la complexión fuese grande el peso ideal sería 70-77kg.
Fuera de eso tremendo curso, muchas gracias por salvarme de la locura en estos días de cuarentena. Me ha dado por aprender o "reaprender" a programar gracias a tus videos, hace 10 años cuando tenía 15 pasé lo que en españa sería un FP de informática, html, msql, c++, php, pero no recuerdo nada, más allá de las cosas básicas como los conceptos etc. Tu curso me está ayudando a seguir el camino después de 10 años sin tocar nada relacionado a la informática. Muchas gracias.
Hola profe
Descubrí este curso y esto super pegada, sin embargo no entiendo por que usa && en vez de ||, las dos condiciones no se dan a la vez, es la una u la otra, de hecho cuando usted explica lo dice, pero el código es otra cosa
Agradezco infinitamente este curso, super bien elaborado, usted cuida el mínimo detalle, no hay ni una palabra de mas, todo es limpio y muy bien organizado. La verdad este curso vale oro, no lo quite, luego de este quiero hacer el de Python.
Le envío un fuerte abrazo, que lo anime a seguir compartiendo sus conocimientos de forma tan generosa con todos nosotros.
Muchas gracias por el comentario Ana. me alegro de que te guste tanto el curso. No te preocupes que yo no pienso quitar el curso de esta plataforma. En cuanto a tu duda, imagino que te refieres al operador && que hay en la condición del while. Si que se cumplen las dos condiciones a la vez, por ejmplo si el usuario introduce la letra "Z" (o cualquier otra cosa) esa letra Z es diferente de "H" y también es diferente de "M" luego entonces si que cumple ambas condiciones. Un saludo!
Tuve tambien ela misma pregunta, incluso probe con ||, pero efectivamente con 'or' no funciona, y es q lo q el parametro de dice es q el valor no puede ser ni H ni M para q se repita, , si pones H 'o' M, pues le das a entender que es pass siempre y cuando cumpla una de las 2 condiciones, pero no ambas juntas.
Tienes que utilizar el operador && ya que la condición estipula que ambos deben ser falsos para seguir ejecutando el do.
Si utlizas || la condición que le estás pasando es que "Mientras la letra sea distinta de H o M, sigue pidiendo una letra". Sería imposible de resolver, ya que una de las dos sentencias siempre será falsa e ya que H es distinto de M y M es distinto de H, y quedaría en bucle eternamente.
Te ayudaría a entender los operadores lógicos viendo un poco de lógica justamente... Conjunción, disyunción, negación, condicional y bicondicional... En cuanto a programación, si usas el operador OR (||) el while al ver que ya la primera condición no se cumple, prosigue en revisar la segunda, en cambio con el AND (&&) si ya la primera condición no se cumple rompe el bucle iterativo y sigue con el código que está debajo. Suele confundir al principio pero de a poco vas a ir entendiendo la lógica detrás de la programación. Creeme que luego de aprender a programar vas a ser una maestra en el debate y la argumentación ;)
@@mafubaa me motiva leer este comentario, espero ser una maestra en el debate, por ahora, vídeo 21, ven a mi.
Pd. Gracias profe
Para agregar algo que no explica Juan es que con los operadores lógicos, en el caso del && primero evalúa la primera condición, en caso que sea verdadera no sigue evaluando las demás condiciones, directamente la da por cumplida. En caso de ser falsa prosigue a evaluar las demás.
En contraposición, con el operador ||, si ya la primera condición es falsa da por falso todo el argumento.
Al principio puede resultar confusa esta diferenciación y suele generar dudas a la hora de decidir cuál elegir.
Puede ayudar un poco el concepto de cada uno: El && (AND) es una condición NO EXCLUYENTE, esto quiere decir que, por ejemplo en el caso de tener 4 condiciones, por más que la primera, la segunda o incluso la tercera condición del argumento sean falsas NO EXCLUYE que la 4ta pueda ser verdadera.
El || (OR) SI ES EXCLUYENTE, ya que en caso de tener 4 condiciones dentro de un argumento, si al revisar la primera resulta ser falsa no continúa evaluando el resto ya que no es necesario debido justamente a la EXCLUSIVIDAD argumentativa.
Espero que sea de ayuda para los que se están iniciando en el mundo de la lógica y la programación.
Desde Valencia (España). Muy buen curso, muy buena forma de explicar, muy entretenido. Soy programador en VB, pero este curso lo quise empezar desde cero. Enhorabuena Juan Excelente curso.
Muchas gracias !! Un saludo
un excelente trabajo, no puedes ser mas claro, y no te da pereza recordad cualquier detalle, lo que es de gran utilidad para nosotros. recomendable al 100&. un abrazo maquinaaaa!!!
Por si quereis tomar nota, el while se puede simplificar:
while (!genero.equalsIgnoreCase("H") && !genero.equalsIgnoreCase("F"));
con el simbolo ! delante quiere decir lo mismo que == false.
Gracias!
Pufff ese While del video me dejó descolocado, yo usé el ^ porque te hace escoger entre uno o el otro, (genero.equalsIgnoreCase("H") ==true ^ genero.equalsIgnoreCase("M")==false); Pero normalmente hubiera usado el ; while (!genero.equalsIgnoreCase("H") && !genero.equalsIgnoreCase("F")); , creo que se lee mejor,lo asimilas mejor.
jajajja profesor un saludo desde mexico. su clase me ayuda mucho en java y android.
enverdad veo como 10 videos por dia.
y me ayudan muchisimo...
Eres un grande, estoy preparando mi examen de septiembre gracias a ti, de lo contrario sería imposible. Muchísimas gracias.
Eres muy grande tío, no sé si a estas alturas seguirás leyendo los cientos de comentarios que te escribe la gente agradecida, pero aquí va mi intento.
Tengo pensado meterme a una ingeniería informática porque estas cosas me encantan, y a sido encontrar tu canal y en tres días me llevo vistos 20 vídeos.
Están explicados muy detalladamente pero no de manera pesada por lo tanto es perfecto para seguir el contenido sin perderse en ningún momento. GRACIAS.
Excelente profe!! Para el que le sirva hice un simple cambio con la condicion booleana del while. while(!genero.equalsIgnoreCase("H") && !genero.equalsIgnoreCase("M"));
Cambiando ==false por ! al principio de la cadena.
Saludos.
Hay que ahorrar tecla :)
(10:54) Aquí la condición se puede expresar de esta manera :
while( !genero.equalsIgnoreCase("H") && !genero.equalsIgnoreCase("M") );
o también :
while( ! (genero.equalsIgnoreCase("H") || genero.equalsIgnoreCase("M")) );
Decidí iniciar este curso, porque me quiero sumergir en el desarrollo de software para móviles el próximo año, pues solo decir muchas gracias al maestro por compartirlos su conocimiento.
Dios mío, pensé que nunca entendería la programación (estaba en un error). Eres el mejor. Explicaciones claras y estructura del curso muy estimulante . Muchas gracias !!!
Javier si si Gracias por tu comentario. Me alegro de que te gusten los vídeos. Veo que estás en los comienzos y es bueno que lo entiendas. Espero que estés preparado para vídeos futuros donde la cosa se pone algo más complicada ya que Java es un lenguaje de programación algo complejo. Seguro que si... Un saludo
El mejor curso de java que puedes tomar y ademas gratuito
Muy buena eso de tremendamente musculado y el "es broma" jajajaja
Me rio mucho, y aprendo mucho más. Eres genial!
Un pequeño consejo para todos los que estamos aprendiendo. A pesar que no manejo el Ingles me ha sido mas practico que debajo de cada Código/Instrucción de los ejercicios realizar un comentario con la traducción al Español asi es mas sencillo comprender mejor que tener que aprender de memoria el Código. Y gracias Juan de corazón por darnos un poco de tus conocimientos de forma excelente y aplicable
yo en el 2022 viendo este tuto! excelentes videos, a este ej le puse un if que te dice que estas gordo o muy flaco dependiendo tu peso ideal, me gusta agregar cosas para practicar!!!
Excelente canal y página. Grande Juan.
Muchas gracias por el comentario. Un saludo!!
hola!! decirte que estoy haciendo este curso, y que me considero una de las personas que somos desde 0 jaja. Darte mi enhorabuena porque es fantástico, hay dias que me veo hasta 3 seguidos y luego los vuelvo a ver para aclararme al 100%. Lo cual ,me encantaría si pudiese ser dentro de tus posibilidades de disposibilidad, no se si me explico, que me pudieras contestar a algunas pequeñas dudas o suposiciones mias. Quiero aprenderlo tan bien que no quiero pasarme ni el mas minimo detalle, soy de las personas que quemo la api java, y aunque no se ingles estoy hay mirando y traduciendo. Espero ya también aprovechando ya esto, que encima aprendiera ingles!! sería genial, porque lo comparo como el capitulo ese que decias que era como sacarte el carnet de conducir, te sacabas un teorico y una practica y te lo daban. Pues a mi me esta pasando como con el carnet de conducir, que tenía tanta ilusión por tenerlo que me hiba a esforzar al máximo para poder conseguirlo y en el menor tiempo posible. De verdad mi más sincera enhorabuena por este curso y muchisimas gracias por querer compartirlo con nosotros. (los que queremos, pero por circunstancias en la vida no podemos optar a estudiar a ello).
No me enrollo más y te hago mi pregunta... **¿Anque no se usara el método Do while... cuando le damos a " intentos++;" el valor aunque fuera de 0.000000008 con esa instrucción se convertiría en 1.000000008, por lo cual ya minimo seria el número 1 no?? ** soy un poco dificil explicandome... espero que me ayas entendido o más o menos lo que he querido decirte/preguntarte. Un saludo!
+Jonathan Sanchez Hola !! Muchas gracias por el comentario. Me alegro de que te gusten los vídeos. Espero que mantengas esas ganas y buena predisposición durante todo el curso, incluso cuando las cosas se pongan un poco difíciles. También son buenas esas virtudes que tienes para la vida en general.
Es correcto lo que dices. intentos++ sumaría 1 a cualquier valor anterior que tuviera la variable intentos.
Un saludo
Buenas noches, pero lo que pasa es que con el While lo evalua antes de entrar en el bucle por eso la opción de do while.
Amo este curso, en verdad eres muy bueno explicas muy bien. Ya llegue el 20 ;)
+chava acosta Me alegro de que te guste. Espero que llegues hasta el final, aunque es un largo camino. Un saludo!!
Me tomo mucho tiempo entender esto ahsta que decidi ver tu video por segunda vez mil gracias Juan
Al hacer este ejercicio dije: De qué habla este man? Vamo a ver. Lo puse en debug y dio la casualidad de que al primer intento se me cerró la boca de una bofetada, pues el número aleatorio que se generó fue cero. "¡Adivinaste en cero intentos!" me dijo. El verdadero joga bonito
Eres un grande, estoy preparando mi examen de septiembre gracias a ti, de lo contrario sería imposible. Muchísimas gracias por este enorme aporte y por tu canal.
Gracias amigo. Me alegro de que te guste el curso. Un saludo!!
Muy buen video y un gran aporte, profesor Juan, gracias por ser paciente y explicar de una forma que podemos entender todo.
Estoy realizando una segunda vuelta tras ver los 125 primeros vídeo y estoy muy satisfecho con lo que he aprendido por el momento.
Yo utilizo una estrategia más sencilla puesto que utilizo if y else.
¡Un abrazo compañeros!
lo intente, pero tengo que ver como almacenar y diferenciar eso del genero, o cualquier otro dato, el equals no se pudo ejecutar,
El segundo "else if" es redundante (cambiarlo por else). En el bucle while te aseguras que sólo H / M sean los valores introducidos. Excelente contenidos, felicitaciones.
Excelente!!! ¿donde estaba este curso que no lo encontré antes? y ¡vaya que he buscado!, definitivamente te seguiré en los muchos otros cursos que tienes en tu canal. Se que siendo paciente pronto " veremos la luz", solo es ser disciplinado y practicar mucho... saludos y de nuevo gracias
El tema con el && es más fácil de entender si sabes que las dos condiciones tienen que ser True ya que con que una de las dos condiciones sea Falsa el resultado siempre será falso por lo que saldrá del bucle. Mucha gente se vería tentada a poner un || pero aquí aunque tuvieras un True y un False el resultado siempre sería True y volvería a entrar al bucle.
También hay que tener en cuenta una cosa y es que cuando se hacen condiciones en negativo lía un poco más a la hora de jugar con los true y los false porque por ejemplo, si pones H lo primero que la mente piensa es que como en la condición pone H es True cuando en realidad estás sacando un False.
exacto, estuve jugando un buen rato con los operadores en esa parte
else if {tremendamente musculado}!!!
entre todo el caos y la cara que se me pone cuando empiezas a programar... he salido de mi propio bucle jajajaja... que bueno!!!
:)
jeje😂 Tremendamente muscular! dice!! Estan geniales tus cursos! Gracias por hacerlos y compartirlos!
Excelente curso. Podemos utilizar también el método showMessageDialog de la clase JOptionPane para mostrar un mensaje de información, en lugar de mostrar un mensaje en la consola. Su sintaxis es: JOptionPane.showMessageDialog(null, mensaje); y aquí también podemos concatenar texto con variables. Por el momento no tenemos conocimiento de lo que debemos pasar en el primer parámetro, por eso déjenlo en null que les va a funcionar.
Correcto !! Y más adelante en el curso se utiliza dicho método en algunos ejemplos. Gracias por el aporte. Un saludo!!
Buena esa... mas estético que la consola... jajaja gracias!
Son excelentes los videos Felicidades por su empeño!, me confundi un poco en la comparacion, decidi hacerlo de esta forma aunque es mas codigo se me facilito comprenderlo, solo por mencionar yo manejo C# pero estoy siguiendo su curso desde 0. Aqui dejo mi codigo:
String genero = "";
boolean H,M;
do{
genero = JOptionPane.showInputDialog("Agregue genero H/M!");
genero = genero.toUpperCase(); //Convierto a Mayuscula
H = (genero.equals("H")); //asigna falso si no se ingreso H
M = (genero.equals("M")); //asigna falso si no se ingreso M
}while (H == false && M == false); // Mientras H y M sean false (las DOS) continua el ciclo
Igual yo, eso fue lo que no entendí, pero ya miré tu comentario y me quedo más claro.
ya voy en este video y todo muy bien explicado y claro. muchas gracias por tu aporte. seguiremos viendo los demas. Saludos.
Dejame decirte una cosa. Enseñas tan bién, que cuando dejas claro que vas a programar, se programarlo por mi cuenta. Le pongo pausa, lo programo, funciona a la perfección, y veo el video para confirmar que no me pierto de nungún concepto o algo importante xD Eres grande! Y te agradezco muchísimo estos tutoriales :)
+Jeshua Reyes Carmona Gracias a ti por seguir mis vídeos. Me alegro de que te gusten. Un saludo
Gracias por su dedicación por su tiempo por hacerlo todo ameno y fácil y compartir con la gente que lo necesita y no puede permitirse hacerlo en una academia .
Muchas gracias por el comentario. Un saludo
Muy bueno le entendi más que al anterior ejemplo, debo analizarlo un poco más a detalle y con la práctica tendré que ir avanzando, gracias por el aporte...
Eres un grande, estoy preparando mi examen de septiembre gracias a ti, de lo contrario sería imposible. Gracias
7:15 Programa para IMC/Peso ideal, jajaajaj! Lo habia hecho cursos atrás a base de if/else/if elses, vamos de una manera totalmente diferente pero que hace lo mismo , solo que he usado más lineas de código y he declarado más variables. Ahora sabría como hacerlo mejor y optimizarlo . Lo hice con IMC que se calcula dividiendo el peso por la altura(m) al cuadrado, lo que complica bastante mas el código. No me quejo, asi por lo menos he desarrollado mi imaginación algo jeje. Muy buen curso , el mejor que hay de java por internet.
Muchas gracias por el comentario. El mío solo calcula el peso ideal y no el IMC. Seguro que el tuyo también está bien. Un saludo!!
Que dios lo bendiga profe! un genio total
Gracias me convertire un pildorin!!!!
!!Genialisimos todos tus videos, muuy bien explicado gracias ya he captado mucho mejor JAVA =D !! y de hecho en la parte donde ponen "Introduce tu altura en cm" yo lo hice diferente para que introduzca la altura normalmente (1.72) y solo multiplicar por 100 (como el video anterior) para que sean los 172 (cm) , Pero lo importante que comprendí jeje ;)
double altura = Double.parseDouble(JOptionPane.showInputDialog("Dame tu altura: "));
altura = (altura*100);
Saludos y Gracias de nuevo !! =D lml
+Erk Dante Buena modificación !! Me alegro de que te gusten los vídeos. Un saludo
"Soy tremendamente musculado"
JAJAJA
eminem goat
Hola! Antes de nada decirte que me encanta tu curso y que desde el punto de vista de alguien que ha podido ir a la universidad, da gusto el nivel que tienen tus clases y tu calidad como profesor, me encanta que profundices en todo en lugar de pasar cosas por alto, la forma de comprender algo a la perfección en saber de donde sale cada cosa.
Y sin dar mas la chapa, con respecto a lo que dices que la variable ha de ser iniciada antes de ser usada en el bucle, igual es porque lo cambiaron en versiones posteriores de java (estoy usando la 1.8) pero a mi me ha permitido usarla sin iniciarla (solo estaba declarada) de hecho yo hice el programa antes de mirar la clase (para poder comprar el mio con el tuyo) y lo había hecho de esa forma y funcionaba perfectamente.
Edito: Vale te he mentido, me acabo de fijar mejor y no es asi, la habia iniciado con una lectura de la variable por consola, solo que yo para poner un mensaje diferente para el primer intento hago la lectura fuera del bucle.
exacto a mi me paso igual
Sefora Martin: Correcto!! Es un programa ideal para el día 28 de Diciembre. Es un detalle que ya me han comentado varias veces y efectivamente tenéis razón. El que habla mete la pata también muchas veces. Un saludo
En este ejercicio creo que están invertidos los valores del if y el else if de la primera parte. Tendría que ir: if(numeroaleatorio){}
Sino tira número random nuevo en cada vuelta del ciclo. Al menos eso me pasaba y lo solucioné así.
Otra forma seria inicializar la variable con un negativo xd. Bueno eso creo yo, igualmente le agradezco a usted por la dedicación y el tiempo que ocupa para subir estos vídeos que ayudan a mucha gente a entender el hermoso mundo de la programación. Saludos Desde Perú!!!
Hola
Muy bueno el ejercicio entendible y practico muchas gracias por brindar tus conocimientos.
Gracias por el comentario. Un saludo!!
Saludos Juan.
Para el ejemplo del Do-WHILE he utilizado el mismo ejercicio del programa AdivinaELNumero. Esta variante la he utilizado para que una vez se haya adivinado el número, pues preguntar si el usuario quiere jugar nuevamente sin tener que cerrar el programa y volverlo a iniciar.
El detalle que tengo es que al preguntar que si quiere jugar nuevamente el programa no se detiene a esperar respuesta y sigue ejecutando todos las instrucciones siguientes dando por terminado el juego.
Tal pareciera que hay un conflicto con la variable "RepetirJuago" que al salir del bloque DO se pierde su valor.
Te dejo el código por si lo quieres ejecutar en tu ordenador y ver a lo que me refiero. Mucho me serviría si me pudieras ayudar a despejar la posible falla.
import java.util.*;
public class AdivinaElNumero {
public static void main(String[] args) {
// En este programa se deberá generar un número aleatorio el cual el usuario deberá adivinar y ver
// en cuántos intentos lo logra.
int NumOculto = (int)(Math.random()*100);
Scanner entrada = new Scanner(System.in);
String NomUsuario;
int NumUsuario;
int intentos = 1;
String RepetirJuego;
String NuevoIntento = "s";
System.out.println(" - ADIVINEMOS EL NÚMERO -
");
System.out.print("Mi nombre es JAFBYR y me gustaría saber cómo te llamas tú... ");
NomUsuario = entrada.nextLine();
System.out.print("
");
System.out.println("Pues bienvenido(a) al juego " + NomUsuario + ", empecemos...
");
do {
System.out.print("Qué número crees que tengo oculto? ");
NumUsuario = entrada.nextInt();
while(NumOculto != NumUsuario) {
System.out.print("Lo siento, tu número es incorrecto. ");
if(NumOculto < NumUsuario) {
System.out.print("Intenta con un número menor: ");
NumUsuario = entrada.nextInt();
}
else {
System.out.print("Intenta con un número mayor: ");
NumUsuario = entrada.nextInt();
}
++intentos;
}
System.out.print("Felicidades, en " + intentos + " intento(s) lo has conseguido: " + NumUsuario + " y " + NumOculto + " son iguales.
" );
System.out.print("Quieres que lo volvamos a intentar? : ");
RepetirJuego = entrada.nextLine();
}
while(NuevoIntento.equalsIgnoreCase(RepetirJuego) == true);
System.out.println("Ok, aquí detenemos el juego.
Me dio mucho gusto conocerte y jugar contigo.
Cuando gustes regresar, aquí estaré esperando.
Bye.");
}
}
Excelente aporte. Excelente código. Un saludo!
Muchas gracias por todo el curso, excelente!!
Aunque me cueste procesar tanta negativas juntas, eres un pedazo de crack!
Gracias Juan! Me encanta el curso!!!!
Desde Mallorca un saludo para todos, Juan felicidades por las clases la verdad que un >10 jjjjj me hice hasta la lección 34 y he vuelto a repasar y la verdad que muy bien, yo le he añadido un poco mas de dificultad, ya que solo puedo usar el teclado en pantalla ya que tengo un 96% de discapacidad motora, en este ultimo vídeo le añadi las libras y creo que esta bien? import javax.swing.*;
public class peso_ideal {
public static void main(String[] args) {
// TODO Auto-generated method stub
String genero="";
do{
genero=JOptionPane.showInputDialog("Introduce tu genero (H/M)");
}while(genero.equalsIgnoreCase("H")==false && genero.equalsIgnoreCase("M")==false);
int altura=Integer.parseInt(JOptionPane.showInputDialog("Introduce tu altura cm"));
int peso_ideal=0;
if (genero.equalsIgnoreCase("H")){
peso_ideal=altura-110;
}
else if(genero.equalsIgnoreCase("M")){
peso_ideal=altura-120;
}
System.out.print("Tu peso ideal es " +peso_ideal+ " kilos y en libras " );
double libra=peso_ideal/0.453592338;
System.out.printf("%1.0f",libra);
}
}
Hola Juan. Acabo de empezar, que sepas que estoy aprendiendo tela con tus videos, mejor no lo puedes explicar. Soy nuevo en Java y prácticamente en todo a lo que programación se refiere. He decidio a aventurarme antes de ver el vídeo a hacerlo yo por mi cuenta. Creo que funciona igual que el tuyo pero con un poco más de código y más relio. En fin te dejo el código por su le quieres echar un ojo. Muchas gracias por lo vídeos ya que estás ayudando a muchísima gente a aprender. Un saludo
import javax.swing.JOptionPane;
public class VIDEO20_DOWHILE {
public static void main(String[] args) {
String respuesta;
String hombre="hombre";
String mujer="mujer";
double altura=-1;
do{
respuesta=JOptionPane.showInputDialog("¿Eres hombre o mujer?");
if(respuesta.equals(hombre)==true){
System.out.println("Bienvenido, señor");
}
else if(respuesta.equals(mujer)==true){
System.out.println("Bienvenida, señora");
}
}while((respuesta.equals(hombre)||(respuesta.equals(mujer)))==false);
if(respuesta.equals(hombre)==true){
altura=Double.parseDouble(JOptionPane.showInputDialog("Introduce tu altura"));
System.out.println("Al medir " + altura + " cm,");
System.out.print("tu peso ideal es de " + ((altura*100)-100) + " kg" );
}
else if(respuesta.equals(mujer)==true){
altura=Double.parseDouble(JOptionPane.showInputDialog("Introduce tu altura"));
System.out.println("Al medir " + altura + " cm,");
System.out.print("tu peso ideal es de " + ((altura*100)-110) + " kg" );
}
}
}
yo lo hice con numero=101 asi siempre arranca y ademas con JOptionPane tus videos sirven de mucho
+johnabcabcabc Gracias !! Un saludo
Daniel Garcia: También valdría. Las alternativas son muchas... Un saludo
+pildorasinformaticas Hola profesor saludo desde venezuela una pregunta
cuando hacemos el objeto Scanner: Scanner entrada = new Scanner(System.in); eclipse recomienda que lo declaremos como private static Scanner entrada;
esa forma que recomienda eclipse la usamos para las buenas practicas de programacion
Espero que me haya entendido la pregunta
antonio e pildora soy nuevo en java. pero de base de otros lenguajes te puedo decir que si lo puedes hacer aunque es mas complejo.
puedes crear una matrix de letras digamos de la a -e hay 5 letras. a b c d e cada una esta en un indice despues lo que debes hacer es crear un random del 0 al 4 y lo asocias a la matrix y te dara letras al azar.
tambien no se si se puede. del codigo ascii de la a -z tiene numeros bien lo puedes crear un random que genere esos numeros y despues los pasas a char
Hola Juan ! Mira, he encontrado un ejercicio sobre series numéricas. La serie que hay que programar es esta: 1,5,3,7,5,9,7,11,9,13,… En las posiciones pares se suma 4 y en las impares se resta 2. El código es este:
import java.util.*;
public class Ejercicio_Operadores2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int serie = 1;
boolean sumar=true;
int cont;
String cadena="Serie: ";
System.out.println("Indique cuantos numeros de la serie quiere ver: " );
Scanner sc = new Scanner (System.in);
cont=sc.nextInt();
do{
cadena=cadena.concat(String.valueOf(serie) + " ");
cont --;
if(sumar==true){
serie+=4;
}else{
serie-=2;
}
sumar=!sumar;
}while(cont>0);
System.out.println(cadena);
}//Fin Main
}//Fin Clase
Me ha costado un poco entenderlo, pero creo que he captado la idea. Mi pregunta es, si hay alguna forma de hacerlo con Arrays. Que es como yo había pensado en un principio hacerlo. Muchas gracias por tu atención. Un saludo.
Paul Cano Hola !! Así me gusta, que pongáis a trabajar lo que tenemos dentro del cráneo. Sí, se puede hacer con Arrays, pero se complicaría bastante la cosa. Tendrías que trabajar con las posiciones del Array y con el método sort para ordenar los elementos del Array (y seguramente otros que ahora no caigo).
Me gustaría tener tiempo para poner ejemplo de todas las dudas y preguntas que me hacéis, pero me resulta imposible...
Saludos !!
Casi lo tengo, pero me está dando dolor de cabeza el cómo hacer que haga una operación cuando está en la posición par del Array, y cuando hacer otra cuando está en la posición impar. A ver si alguien se anima jejeje. Y gracias por contestar :-)
jaja ami me paso al principio cando ejecute el programa por primera vez, incluso llegue a pensar que lo habia hecho mal pero no fue asi. Aunque se me ocurres varias forma de solucionar el problema veo la intención por la cual lo hiciste muchas gracias.
Se está poniendo entretenido.
Muchas Gracias Juan!!!
Mauro Gonzalo Roth Gracias a ti por seguir mis vídeos. Un saludo
En el programa de adivinar el numero también se podría evitar ese error declarando numero=101 en vez de declarar numero=0 porque sabes que el 101 no va a salir nunca ya que es un número del 0 al 100 :D
yo lo que hice fue
Random aleatorio = new Random(System.nanoTime());
int generado = aleatorio.nextInt(99)+1;
de tal manera que nunca pueda ser 0 y no sea mayor a 100.
@@gonzelos Amigo el objeto Random es excluyente con el numero que le pasas como parametro osea que si le pones 99 tomara de 0 a 98 si le pones 99+1 osea lo que haces es hasta 98+1 =99 no tomara el 100 y el programa toma numeros al azar de 0 a 100 no de 0 a 99 por lo que deben hacer es poner 101 para que excluya el 101 y tome hasta 100 :D
Simplemente declara numero con valor de -1. ;)
@@juaneshero o 101 :D
yo tamb pense eso xd
Hola, gracias estoy siguindo este curso ya que estoy estudiando Desarrollador JAVA y estoy un poco perdido, gracias a usted lo veo todo mas claro. Queria saber si en alguno de estos capitulos usted explica el juego del ahorcado. Muchisimas gracias me esta ayudando mucho. Saludos...!
Muchas gracias nuevamente muy bien explicado.
buenisimo explicando y buenos ejercicios
Excelente!!!, lo que no me queda claro es si hace falta para este ejemplo sencillo el "else if(.........)", o si no podemos arreglarno con un simple else, ya que el while se encargo de que genero sea H o M.
Es decir el esle if(...) queda mucho más prolijo. Pero es necesario?
Gracias por todo el esfuerzo y el tiempo invertidos en este espectacular curso!!!
Lo solucionaría cambiando la variable de numero ingresado por un -1 y ya, sabemos que random no da valores negativos y la condición del while se sigue cumpliendo, o no profe?
Hola, me encantan tus videos y explicaciones, a ver si algun día pudieras hacer unos ejercicios o unas explicaciones de como se usa JUnit. Un saludo
+Nuria Ortiz Hola !! Gracias por el comentario. Tomo nota de tu petición. Un saludo
Para resolver el problema con el valor inicial de la variable numero, basta inicializarla a un número negativo, por ejemplo
int numero = -1;
Ese valor no pertenece al rango de enteros que estamos considerando 0
Correcto!
Esa notificación de windows me pego un susto tremendo!!
Grande profe admitiendo que solo hay 2 géneros. Héroe.
Estimado Juan, se podría solo usar un else, porque en el do while esta condicionado a ser solo H o M por lo que, ya no es necesario! pero son cosas que estoy seguro haces, para que sea didáctico y uno repase las estructuras, Salu2
Buenas. Lo que comentas en el minuto 4:10, cuando si aleatorio = 0, puede ser que el resultado sea absurdo.... pero el programa si se ejecuta. Estoy en lo cierto? al menos en mi ejemplo al salir del while sigue hasta cumplir el System.out.println("Número correcto..."); Gracias
Hace mucho que grabé estos vídeos y no recuerdo exactamente el código, tendría que mirarlo de nuevo. Pero seguramente tengas razón, todo depende de cómo esté construida la condición del while. UN saludo!
Ya me veo capaz de pausar el video una vez explicas lo que se va a realizar y intentar hacerlo yo, pero ahora entiendo lo de se valora programador que sepa hacer codigo extructurado y tenga fácil visualización, que lo que he hecho funciona pero una vez hecho ni yo lo "entiendo". Pero bueno poquito a poquito vamos
No conocía el bucle "do-while" mi solución para el programa anterior fue inicializar la variable "numero" en un valor superior a 100, así también me aseguro de que el bucle se inicie sin el riesgo de que coincida con el numero aleatorio...
muy buen curso, eh entendido mucho... ;)
la solución para no necesitar el Do While y que nuestro bucle While sea igual de valido y se ejecute por lo menos una vez es iniciar numero por encima de 100
numero=101;
con esto aseguraríamos la entrada en el bucle while por primera vez aunque el random fuese 0 ya que ese valor inicial estaría fuera del rango de las posibilidades del programa.
Lo chulo de la programacion es que siempre hay muchas opciones, yo hubiese declarado la variable en null.
Efectivamente así es. Y me alegro que comentes esto porque recibo muchas preguntas a diario de personas que empiezan en el mundo de la programación y creen que solo hay un camino posible para resolver un problema. Cuando les explico que en programación las alternativas son siempre varias, no lo terminan de entender del todo. Un saludo!!
Hay lenguajes en los que tiene sentido hacerlo y otros en los que no. Ejemplo: en C, NULL se utiliza mayormente cuando se trabaja con punteros, sin embargo en Java al no utilizar punteros por ser un lenguaje de alto nivel se puede utilizar sin problemas como un "elemento vacío"
Ahora entiendo :D. En la primera ejecución del programa con el while me dijo que el numero era correcto y no me solicitó ingresar nada. Fue una de esas casualidades. Y en el primer intento!! :D :D
Pues si que has tenido suerte. ¿Fue el 71?
Una pregunta, existe un método equivalente a ParseInt que funcione para números dobles?
Muchas gracias por la ayuda
Hola !! Sí, parseDouble. Un saludo!!
Creo que se puede usar el while si le asignamos un valor negativo o mayor a 100 a la variable numero
Excelente...lo felicito!!! Quería saber si conoce de algún enlace o pdf en el se planteen ejercicios desde lo básico hasta lo avanzado para colocar en practica cada vídeo que voy viendo.
Excelente la serie de vídeos, si bien soy ingeniero no poseo conocimientos de programación y hasta el momento voy de maravillas, incluso ya pienso el código antes de que lo escribas así que voy bien encaminado, muchas gracias.
Quisiera saber lo siguiente:
" }while (genero.equalsIgnoreCase("H")==false && genero.equalsIgnoreCase("M")==false); "
Cuando agregas el && podría unir muchas mas condiciones con infinitos && ??, ejemplo:
" }while (condicion.uno==true && condicion.dos==false && condicion.tres==false && + ... + && condicion.n==true); "
me gustaria saber tambien que pasa en este caso...igual creo qeu tiene que ver con el tipo de problema que se trate...por que podrias poner un switch con diferentes opciones asi directamente vas al grano!