Miałem zadanie z prośbą o: "Ubezpieczenie samochodowe Honda-Toyota:

Pisze program JavaScript, który drukuje opłatę ubezpieczeniową za zapłatę za pojazd zgodnie z następującymi zasadami:

 Honda, która jest napędem na koła kosztuje 450 USD.

 Honda, która jest dwoma kołami kosztuje 350 USD.

 TOYOTA, która jest napędem na koła kosztuje 300 USD.

 TOYOTA, która jest dwoma napędami koła kosztuje 250 USD.

Każdy inny typ pojazdu generuje komunikat o błędzie. Strona internetowa powinna skłonić użytkownika o odpowiednich informacjach: Pytanie o model samochodu (Honda lub Toyota), a następnie, jeśli jest to napęd na wszystkie koła lub nie, a następnie wyświetlić opłatę na ubezpieczenie. Po wydrukowaniu opłaty ubezpieczeniowej program powinien poprosić użytkownika, jeśli chce ubezpieczyć innego pojazdu za pomocą struktury powtarzania "

Nie miałem żadnego wcześniejszego doświadczenia za pomocą pętli i nie mogłem dowiedzieć się, jak uzyskać program do pętli do początku, gdy użytkownik odpowiedział "Tak" w monicie "Czy chcesz ubezpieczyć innego pojazdu?" Oto kod, który używałem:

function feeCalc() //Linked to button on html page. Perhaps this was the issue?
{
    let carType = prompt('Do you have a Honda or Toyota?');


    //changes case of input string to lowercase
    let carTypeLC = carType.toLowerCase();


    //prices of different insurance
    let hondaAWD = "450.00";

    let honda2WD = "350.00";

    let toyotaAWD = "300.00";

    let toyota2WD = "250.00";


    if ((carTypeLC == 'honda') || (carTypeLC == 'toyota')) {
        let wheelDrive = prompt('Does your vehicle have All Wheel Drive or Two Wheel Drive? Enter \"AWD\" or \"2WD\".');


        //changes case of input string to lowercase
        let wheelDriveLC = wheelDrive.toLowerCase();


        if ((carTypeLC == 'honda') && (wheelDriveLC == 'awd')) {
            alert('The insurance fee for your Honda AWD is $' + hondaAWD);

            document.getElementById("webDisplay").innerHTML = 'The insurance fee for your Honda AWD is $' + hondaAWD;
        } else if ((carTypeLC == 'honda') && (wheelDriveLC == '2wd')) {
            alert('The insurance fee for your Honda 2WD is $' + honda2WD);

            document.getElementById("webDisplay").innerHTML = 'The insurance fee for your Honda 2WD is $' + honda2WD;
        } else if ((carType = 'toyota') && (wheelDrive == 'awd')) {
            alert('The insurance fee for your Toyota AWD is $' + toyotaAWD);

            document.getElementById("webDisplay").innerHTML = 'The insurance fee for your Toyota AWD is $' + toyotaAWD;
        } else if ((carType = 'toyota') && (wheelDrive == '2wd')) {
            alert('The insurance fee for your Toyota 2WD is $' + toyota2WD);

            document.getElementById("webDisplay").innerHTML = 'The insurance fee for your Toyota 2WD is $' + toyota2WD;
        } else {
            alert('There seems to be an error. Please try again.');
        }
    } else {
        alert('There seems to be an error. Please try again.');
    }

    let restart = prompt('Do you want to insure another vehicle? \"y\" or \"n\"')
}

do {
    feeCalc
} while (restart = 'y' && restart != 'n');
//I commented the above do while loop code out because it was not working and made the rest of my code not function. I had to submit the assignment so I submitted what was working. 

Funkcja była połączona z przyciskiem na stronie HTML i być może była to mój problem, ale nie miałem czasu na edycję wszystkich kodu, które właśnie zbudowałem na czas na termin. Jestem pewien, że muszę użyć A Road Loop, ale po prostu nie mogłem go uruchomić (dlatego, dlaczego to skomentowałem). Jestem początkującym i przyjmując zajęcia online, więc robię najlepsze, co mogę z informacjami podanymi mi, ale niestety profesor nie opublikował żadnych przykładów, jak zrobić pętle z czymkolwiek poza wartościami numerycznymi. Powyższy kod działa w porządku od części pętli. Proszę o pomoc, ponieważ mój profesor jest bardzo wolny od klasyfikacji i nie zapewnia konkretnej opinii.

1
dingerina 19 październik 2020, 19:31

1 odpowiedź

Najlepsza odpowiedź

Masz większość większość. Spróbuj zwrócić wartość monitu, a następnie użyj go jako flagi, podczas gdy pętla. Lubię to -

function feeCalc()  //Linked to button on html page. Perhaps this was the issue?    
  {
  
  let carType = prompt('Do you have a Honda or Toyota?');

  //changes case of input string to lowercase
  let carTypeLC = carType.toLowerCase();
    //prices of different insurance
  let hondaAWD = "450.00";
  let honda2WD = "350.00";
  let toyotaAWD = "300.00";
  let toyota2WD = "250.00";

  if ((carTypeLC == 'honda') || (carTypeLC == 'toyota'))
    {
        let wheelDrive = prompt('Does your vehicle have All Wheel Drive or Two Wheel Drive? Enter \"AWD\" or \"2WD\".');
        //changes case of input string to lowercase
        let wheelDriveLC = wheelDrive.toLowerCase();
        
        if ((carTypeLC =='honda') && (wheelDriveLC =='awd'))
            {
            alert('The insurance fee for your Honda AWD is $' + hondaAWD);
            document.getElementById("webDisplay").innerHTML = 'The insurance fee for your Honda AWD is $' + hondaAWD;
            }
        else if ((carTypeLC == 'honda') && (wheelDriveLC =='2wd'))
            {
            alert('The insurance fee for your Honda 2WD is $' + honda2WD);
            document.getElementById("webDisplay").innerHTML = 'The insurance fee for your Honda 2WD is $' + honda2WD;
            }
        else if ((carType=='toyota') && (wheelDrive=='awd'))
            {
            alert('The insurance fee for your Toyota AWD is $' + toyotaAWD);
            document.getElementById("webDisplay").innerHTML = 'The insurance fee for your Toyota AWD is $' + toyotaAWD;
            }
        else if ((carType=='toyota') && (wheelDrive=='2wd'))
            {
            alert('The insurance fee for your Toyota 2WD is $' + toyota2WD);
            document.getElementById("webDisplay").innerHTML = 'The insurance fee for your Toyota 2WD is $' + toyota2WD;
            }
        else
            {
            alert('There seems to be an error. Please try again.');
            }
    }
    else {
        alert('There seems to be an error. Please try again.');
    }
    return prompt('Do you want to insure another vehicle? \"y\" or \"n\"')
  }

// use the variable restart as a flag to break off the do...while loop
let restart = 'y';
do 
  {
    restart = feeCalc();
  } 
while (restart === 'y');

1
Rudraprasad Das 19 październik 2020, 20:05