usar EOF no java sem um arquivo
Pessoal, bom dia!
Como eu encerro um processo utilizando EOF, mas sem tem um arquivo sendo lido?
Só para vocês entenderem melhor:
Tenho um problema para resolver cujo enunciado está assim:
Ou seja, pelo que entendi, devemos ir digitando as entradas e terminar o programa quando pararmos de digitar os valores... não entendi como fazer isso! Como o sistema vai perceber que eu parei de digitar?
Como eu encerro um processo utilizando EOF, mas sem tem um arquivo sendo lido?
Só para vocês entenderem melhor:
Tenho um problema para resolver cujo enunciado está assim:
A entrada contém vários casos de teste e termina com EOF. Cada caso de teste consiste de uma linha contendo o número N de reclamações (0 ≤ N ≤ 100).
Ou seja, pelo que entendi, devemos ir digitando as entradas e terminar o programa quando pararmos de digitar os valores... não entendi como fazer isso! Como o sistema vai perceber que eu parei de digitar?
Frederico Silva
Curtidas 0
Respostas
Pablo Carvalho
29/11/2017
Olá Frederico, tudo bem?
Acredito que as entradas não serão digitadas por você! Serão fornecidas diretamente para sua aplicação! Atualmente existem pequenos scripts que simulam essas entradas, justamente para aulas e treinamento de codificação.
O que você pode fazer, por exemplo, é o uso de um "While" para condicionar essa leitura enquanto o valor recebido não for Nulo, por exemplo:
Acredito que as entradas não serão digitadas por você! Serão fornecidas diretamente para sua aplicação! Atualmente existem pequenos scripts que simulam essas entradas, justamente para aulas e treinamento de codificação.
O que você pode fazer, por exemplo, é o uso de um "While" para condicionar essa leitura enquanto o valor recebido não for Nulo, por exemplo:
BufferedReader inReader;
inReader = new BufferedReader(new InputStreamReader(System.in));
String valor1;
try {
valor1 = inReader.readLine();
while (valor1 != null) {
// Sua implementação aqui ...
valor1 = inReader.readLine();
}
} catch (IOException ex) {
}
}GOSTEI 0
Frederico Silva
29/11/2017
Pablo, esse eu até entendi... por se tratar de string... mas aí me deparei com este outro caso, veja o código:
ou seja, para colocar a condição no while minha variável deve ser String, mas para digitação eu preciso de int... da forma como está aí em cima, não funcionou. O que fazer nesta situação?
BufferedReader b = new BufferedReader(new InputStreamReader(System.in));
int[][] m = new int[1][1];
String linha;
try {
linha = b.readLine();
if ((Integer.parseInt(linha) < 3) || (Integer.parseInt(linha) > 70)) {
linha = b.readLine();
}
while ((linha != null) && (!linha.equals(""))) {
m = new int[Integer.parseInt(linha)][Integer.parseInt(linha)];
for (int i = 0; i < Integer.parseInt(linha); i++) {
for (int j = 0; j < Integer.parseInt(linha); j++) {
m[i][j] = b.read();
}
}
for (int i = 0; i < Integer.parseInt(linha); i++) {
for (int j = 0; j < Integer.parseInt(linha); j++) {
System.out.println(m[i][j]);
}
}
linha = b.readLine();
if ((Integer.parseInt(linha) < 3) || (Integer.parseInt(linha) > 70)) {
linha = b.readLine();
}
}
} catch (Exception e) {
} ou seja, para colocar a condição no while minha variável deve ser String, mas para digitação eu preciso de int... da forma como está aí em cima, não funcionou. O que fazer nesta situação?
GOSTEI 0