Pessoal, a questão pede que o usuário digite vários números e será encerrado quando ele digitar “n” para não continuar. O problema é que a estrutura Do While não está aceitando a condição while (resp==‘s’); sendo resp a variável tipo char . Segue o código…
<package questoesguanabara;
import java.util.Scanner;
/**
*
-
@author Andre
*/
public class NewClassQuestaoSessentaTres {
public static void main(String[] args) {
System.out.println("Informe um número: ");
Scanner in = new Scanner(System.in);
int num = in.nextInt();
int menor=0;
menor=num;
float media =0;
media=num;
int par=0;
int cont=1;
float media_tot=0;
int soma=0;
if(num%2==0){
par=1;
}
do {
System.out.println("Quer continuar? [s/n]");
char resp = in.nextLine().charAt(0);
soma=soma+num;
if(num<menor){
menor=num;
}
if(resp=='s'){
System.out.println("Informe um número:");
num= in.nextInt();
}
media=(media+num);
cont++;
if(num%2==0) {
par=par+1;
}
} while(resp=='s');
media_tot=(media/cont);
System.out.println("O somatorio entre todos os valores é:" + soma);
System.out.println("O menor numero eh:" + menor);
System.out.println("A media dos valores eh: " + media_tot);
System.out.println("A quantidade de numeros pares eh: " + par);>
Alguem poderia me ajudar ?
Seu resp não está acessível do {} while (booleano)
Você precisa mover a variável para fora do bloco do-while
char resp = 'x';
Faz {
resp = in.nextLine (). charAt (0);
..
} enquanto (resp == 's'); // agora está acessível
Qualquer variável declarada em um bloco, só é acessível nesse bloco
int x = 1;
{
int a = 0;
// a e x estão disponíveis aqui
}
// apenas x está disponível aqui
1 curtida
Verifiquei seu código e há outro problema.
Você precisa engolir o enter após chamar o método nextInt ().
Caso contrário, seu código com lança uma exceção.
code below
import java.util.Scanner;
/**
*
* Pessoal, a questão pede que o usuário digite vários números e será encerrado
* quando ele digitar “n” para não continuar. O problema é que a estrutura Do
* While não está aceitando a condição while (resp==‘s’); sendo resp a variável
* tipo char . Segue o código… <package questoesguanabara; import
* java.util.Scanner;
*
*
*
* @author Andre
*/
public class NewClassQuestaoSessentaTres {
public static void main(String[] args) {
System.out.println("Informe um número: ");
Scanner in = new Scanner(System.in);
int num = in.nextInt();
in.nextLine(); // add to swallow enter
int menor = 0;
menor = num;
float media = 0;
media = num;
int par = 0;
int cont = 1;
float media_tot = 0;
int soma = 0;
if (num % 2 == 0) {
par = 1;
}
char resp = 's';
do {
System.out.println("Quer continuar? [s/n]");
String value = in.nextLine();
resp = value.charAt(0);
soma = soma + num;
if (num < menor) {
menor = num;
}
if (resp == 's') {
System.out.println("Informe um número:");
num = in.nextInt();
in.nextLine(); // add to swallow enter
}
media = (media + num);
cont++;
if (num % 2 == 0) {
par = par + 1;
}
} while (resp == 's');
media_tot = (media / cont);
System.out.println("O somatorio entre todos os valores é:" + soma);
System.out.println("O menor numero eh:" + menor);
System.out.println("A media dos valores eh: " + media_tot);
System.out.println("A quantidade de numeros pares eh: " + par);
}
}
1 curtida
Obrigado João, funcionou aqui !!