Dúvida sobre inteiros e entradas do teclado

5 respostas
Andre_Rosa

Olá, não programo em Java a alguns anos, cheguei a começar, mas não tinha gostado da linguagem, e comecei com o C. Depois de quase 4 anos programando em C, sei que o Java me beneficiaria mais financeiramente, daí, voltei a praticar começando do começo. E assim, me surge a primeira dúvida. Eu tenho o código:

import java.util.Scanner;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */



/**
 *
 * @author Andre
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here

        int anoAtual = 2010;

        Scanner entradaNome = new Scanner (System.in);

        System.out.print("Entre com o nome do aluno: ");
        String nome = entradaNome.nextLine();

        Scanner entradaIdade = new Scanner (System.in);

        System.out.print("Entre com a idade do aluno: ");

        String idade = entradaIdade.nextLine();

        System.out.println("Aluno: " +nome);
        System.out.println("Idade: " +idade);
        

    }

}

Até aí, podemos dizer que está perfeito, a minha dúvida é:

Como eu poderia deixar o "idade" como inteiro, pois ele é do tipo string. Pois o que eu quero fazer mesmo é diminuir a idade do aluno pelo valor da variável anoAtual, imprimindo o ano de nascimento do aluno.

Como eu poderia fazer tal coisa ? Obrigado.

5 Respostas

J

faz uma variavel int idade que vai receber idade do aluno:

System.out.print("Entre com a idade do aluno: ");

int idade = entradaIdade.nextInt();

e depois imprima assim:

System.out.println("Idade: " +idade);

Andre_Rosa

Primeiramente, obrigado pela resposta. Meu código está assim agora de acordo com o que você disse:

import java.util.Scanner;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */



/**
 *
 * @author Andre
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here

        int anoAtual = 2010;
        int idade;

        Scanner entradaNome = new Scanner (System.in);

        System.out.print("Entre com o nome do aluno: ");
        String nome = entradaNome.nextLine();

        Scanner entradaIdade = new Scanner (System.in);

        System.out.print("Entre com a idade do aluno: ");


        int idade = entradaIdade.nextInt();

        System.out.println("Aluno: " +nome);
        System.out.println("Idade: " +idade);
        

    }

}

Ele roda, mas dá um erro assim que eu entro com o nome. Segue o erro:

[color=red]Entre com o nome do aluno: Andre
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - idade is already defined in main(java.lang.String[])
at Main.main(Main.java:35)
Entre com a idade do aluno: Java Result: 1[/color]

O que pode ser ? Obrigado.

J

ta… vc ta declarando a variavel int 2 vezes… talvez pode ser isso

Andre_Rosa

Caraaaaaaaaaaaaaaaaaaca, era isso mesmo. Que mole que eu dei.

Bom, consegui, obrigado pela ajuda.

M

Só para constar, não é necessário criar um Scanner para cada dado que será lido. Pode-se (e é preferível) fazer:

Scanner entrada = new Scanner(System.in);
System.out.print("Digite seu nome: ");
String nome = entrada.nextLine();
System.out.print("Digite sua idade: ");
int idade = entrada.nextInt();
Criado 19 de junho de 2010
Ultima resposta 19 de jun. de 2010
Respostas 5
Participantes 3