public static void main(String[] args) {
Scanner leia = new Scanner(System.in);
DecimalFormat perc = new DecimalFormat("0.00'%'");
int canal4,canal5,canal7,canal12;
float espectadores,canalAs,porcanal4,porcanal5,porcanal7,porcanal12;
float canalerrado;
do {
System.out.println("Digite o canal desejado:");
canalAs = leia.nextInt();
}while (canalAs <0);
do {
System.out.println("Digite o quantas pessoas iram assistir:");
espectadores = leia.nextInt();
if (espectadores < 0) {
System.out.println("\n A quantidade de espectadores deve ser maior que 0!");
}while (espectadores <0);
do {
System.out.println("O canal digitado deve ser apenas 4,5,7 ou 12 ");
canalerrado=leia.nextFloat();
if (canal5 !=5 && canal4 !=4 && canal7 !=7 && canal12 !=12) {
System.out.println("\n O canal digitado só poderá ser 4,5,7,ou 12!");
}while (canal5 !=5 && canal4 !=4 && canal7 !=7 && canal12 !=12);
//canais a serem escolhidos
if (canal4 == 4) {
canalAs = canal4;
}if (canal5==5) {
canalAs = canal5;
}if (canal7==7) {
canalAs = canal7;
}if (canal12 == 12) {
canalAs = canal12;
}
//calculo de porcentagem
porcanal4 = 100*(canal4/espectadores);
porcanal5 = 100*(canal5/espectadores);
porcanal7 = 100*(canal7/espectadores);
porcanal12 =100*(canal12 /espectadores);
System.out.println("\n=========================================================");
System.out.println("Percentual de Pessoas que assistiu canal 4 : " + perc.format(porcanal4));
System.out.println("\n=========================================================");
System.out.println("Percentual de Pessoas que assistiu canal 5 : " + perc.format(porcanal5));
System.out.println("\n=========================================================");
System.out.println("Percentual de Pessoas que assistiu canal 7 : " + perc.format(porcanal7));
System.out.println("\n=========================================================");
System.out.println("Percentual de Pessoas que assistiu canal 12 : " + perc.format(porcanal12));





Diga-nos qual é o erro por gentileza
Vc está esquecendo de passar as condições para o do while, isso aconteceu duas vezes:
do { //aqui
System.out.println("Digite o quantas pessoas iram assistir:");
espectadores = leia.nextInt();
if (espectadores < 0) {
System.out.println("\n A quantidade de espectadores deve ser maior que 0!");
}
while (espectadores < 0);
do { //e aqui
óbvio que a solução não é essa que vou mostrar, mas é um exemplo, que vc precisa jogar uma condição no seu while:
do {
System.out.println("Digite o quantas pessoas iram assistir:");
espectadores = leia.nextInt();
if (espectadores < 0) {
System.out.println("\n A quantidade de espectadores deve ser maior que 0!");
}
while (espectadores < 0);
do {
System.out.println("O canal digitado deve ser apenas 4,5,7 ou 12 ");
canalerrado = leia.nextFloat();
if (canal5 != 5 && canal4 != 4 && canal7 != 7 && canal12 != 12) {
System.out.println("\n O canal digitado só poderá ser 4,5,7,ou 12!");
}
while (canal5 != 5 && canal4 != 4 && canal7 != 7 && canal12 != 12);
//canais a serem escolhidos
if (canal4 == 4) {
canalAs = canal4;
}
if (canal5 == 5) {
canalAs = canal5;
}
if (canal7 == 7) {
canalAs = canal7;
}
if (canal12 == 12) {
canalAs = canal12;
}
//calculo de porcentagem
porcanal4 = 100 * (canal4 / espectadores);
porcanal5 = 100 * (canal5 / espectadores);
porcanal7 = 100 * (canal7 / espectadores);
porcanal12 = 100 * (canal12 / espectadores);
System.out.println("\n=========================================================");
System.out.println("Percentual de Pessoas que assistiu canal 4 : " + perc.format(porcanal4));
System.out.println("\n=========================================================");
System.out.println("Percentual de Pessoas que assistiu canal 5 : " + perc.format(porcanal5));
System.out.println("\n=========================================================");
System.out.println("Percentual de Pessoas que assistiu canal 7 : " + perc.format(porcanal7));
System.out.println("\n=========================================================");
System.out.println("Percentual de Pessoas que assistiu canal 12 : " + perc.format(porcanal12));
} while (false);
} while (true);
}
