tipos tipo puede incompatible implícitamente datos convertir converted conversion como cannot bool java class void

java - implícitamente - tipos incompatibles: void no se puede convertir a int



incompatible types string cannot be converted to double (3)

Soy extremadamente nuevo cuando se trata de Java y la programación en general. Intento crear un programa simple en el que adivine mi edad y, si tiene razón, dirá "correcto" y, si está equivocado, dirá "incorrecto".

Este es mi código:

import java.util.InputMismatchException; import java.util.Scanner; // This will import just the Scanner class. public class GuessAge { public static int main(int[] args) { System.out.println("/nWhat is David''s Age?"); Scanner userInputScanner = new Scanner(System.in); int age = userInputScanner.nextLine(); int validInput = 20; if (validInput == 20) { return System.out.println("Correct!!"); } else { return System.out.println("Wrong...."); } } }

Aparece el error "tipos incompatibles: void no se puede convertir a int" pero no tengo ninguna clase vacía en el código? Sé que mi código probablemente sea horrible, pero si ustedes pudieran señalarme en la dirección correcta, sería genial. Gracias.


En su declaración de método, tiene public static int main(int[] args)

La palabra después de la palabra clave static es un tipo de devolución, y en este caso su declaración requiere que el método principal devuelva un int . Para resolver esto, main debe tener un tipo de retorno de vacío, ya que solo está imprimiendo dentro de main y no regresando tipo int.


Está intentando devolver System.out.println() que es de tipo void . Quite las declaraciones de return de antes de System.out.println() , y seguirán imprimiendo. Tenga en cuenta que no necesita especificar un valor de retorno en el método main .


Su programa no tiene que devolver un int en public static int main . En cambio, puede tenerlo como void (es decir, no devuelva nada). Simplemente debe imprimir sus estados de cuenta y no return . Además, int[] debe ser String[] y Scanner debe verificar nextInt() como se señala en los comentarios.

import java.util.InputMismatchException; import java.util.Scanner; // This will import just the Scanner class. public class GuessAge { public static void main(String[] args) { System.out.println("/nWhat is David''s Age?"); Scanner userInputScanner = new Scanner(System.in); int age = userInputScanner.nextInt(); int validInput = 20; // typo in your code - compare to age if (validInput == age) { System.out.println("Correct!!"); } else { System.out.println("Wrong...."); } } }