package exp_zwame;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner ler=new Scanner(System.in);
int val,i;
boolean teste=false;
int[]v=new int[10];
do{System.out.println("Insira um valor numérico: ");
val=ler.nextInt();
int tmp;
for(i=0;i>11;i++){
v[i]=i;
if(val!=v[i]){
teste=true;
}
}
}while(teste=true);
}
}
Isso resolve-se com um try/catch, ou não?Estava aqui a magicar, mas a esta hora ja não sai grande coisa.
Este código tem um problema:Código:package exp_zwame; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner ler=new Scanner(System.in); int val,i; boolean teste=false; int[]v=new int[10]; do{System.out.println("Insira um valor numérico: "); val=ler.nextInt(); int tmp; for(i=0;i>11;i++){ v[i]=i; if(val!=v[i]){ teste=true; } } }while(teste=true); } }
1 - Caso o utilizador insira um valor não numérico isto crasha lol
Desculpa lá que não estou com paciencia, mas faz tu isto:
O valor que o utilizador vai dar, em vez de ser lido como integer, é lido como string ou char. E depois dentro do for, convertes o i para string ou char (penso que dá, não sei se através do parse ou de outra forma) e comparas. Caso o valor seja diferente de todos os i's percorridos no for, o programa tem que voltar a pedir o valor. Caso seja igual, segue.
Espero ter ajudado.
import java.util.*;
public class Main {
public static int lerInt() {
Scanner input = new Scanner(System.in);
boolean ok = false;
int i = 0;
while(!ok) {
try {
i = input.nextInt();
ok = true;
}
catch(InputMismatchException e)
{ System.out.println("Inteiro Inválido");
System.out.print("Novo valor: ");
input.nextLine();
}
}
input.close();
return i;
}
public static void main(String[] args) {
System.out.println("Insira um digito: ");
int x = lerInt();
System.out.println(x);
}
}
O problema é que o programa já tá todo feito, estava à espera de fazer isso com try catch, não existe nenhuma excepção para lidar com isso?