Cinema Tickets oт Nesten Loops - решена с While и For 100/100
Здравейте,
след цели 5 часа каде е проблема по задачата най накрая го реших 100 от 100 с кода ми !
Бях писал по рано да ми помогне някой но уви нямах късмет този път и се опитвах и го направих за което се радвам.
Тънките моменти бяха доста, и те объркаха доста сметките и всички други проби които правих!
Надявам се да разберете моя код:
package com.company;
import java.util.Scanner;
public class CinemaTickets{
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String movie = scan.nextLine();
int studentN = 0;
int standardN = 0;
int kidN = 0;
double totalTickets = 0;
double buyPlaces = 0;
while (!movie.equals("Finish")) {
String places = scan.nextLine();
int placesNumber = Integer.parseInt(places);
boolean isFinish = false;
for (int i = 0;i < placesNumber; i++ ) {
String type = scan.nextLine();
switch (type) {
case "student":
studentN++;
break;
case "standard":
standardN++;
break;
case "kid":
kidN++;
break;
}
if (type.equals("Finish")){
isFinish = true;
break;
}
if (type.equals("End")) {
isFinish = false;
break;
}
buyPlaces++;
totalTickets++;
}
if (isFinish){
System.out.printf("%s - %.2f%% full.\n",movie,(totalTickets/placesNumber)*100.00);
break;
}
System.out.printf("%s - %.2f%% full.\n",movie,(buyPlaces/placesNumber)*100.00);
movie = scan.nextLine();
buyPlaces = 0;
}
System.out.printf("Total tickets: %.0f\n",totalTickets);
System.out.printf("%.2f%% student tickets.\n",(studentN /totalTickets)*100);
System.out.printf("%.2f%% standard tickets.\n",(standardN /totalTickets)*100);
System.out.printf("%.2f%% kids tickets.\n",(kidN /totalTickets)*100);
}
}
Благодаря колега, твоето решение е без булева променлива, на мен ми беше трудно как да излезна от главния цикъл като се напише Финиш а не ЕНд :)
Защото фор-а си въртеше вътре и после на отпечатването имаше разлики. Интересно при теб е по съкратен вида на задачата, но се радвам че я разбрах с толкова мъки :).