Skocz do zawartości

if w pętli while


amii
 Udostępnij

Rekomendowane odpowiedzi

Jest to kawałek kodu skryptu wirtualnego alkomatu. Mam taki problem chce zawrzeć kilka warunków if w pętli while, jednak taka instrukcja nie działa w skrypcie, konkretnie chodzi o fragment kodu dla zmiennej if ($zoladek == "pelny") gdzie są wprowadzone 4 warunki dla pozostałych zmiennych skrypt działa prawidłowo. Konkretnie chodzi mi o to aby od wartości zmiennej $index uzależnić sposób obliczania

while (($promile3 >= 0 && $promile3 < 7) || ($promile3 < 7 && $czas0 <= $czaspicia)) {
		if ($czaspicia == 0) {
			$czaspicia = 0.1;
		}			
		$t = ($czas0 - $wspzol) / $czaspicia;
		if ($t > 1) {
			$t = 1;
		}

		if ($zoladek == "pusty") {
		if ($index <= 0) {
		$promile3 = ($a * $t * $wspzol2 -  (( 0.14 - $wspwagwzr ) * ($czas0 - $wspzol)) * $wspzol2)/1.15;
		}
		if ($index > 0) {
		$promile3 = $a * $t * $wspzol2 -  (( 0.14 - $wspwagwzr ) * ($czas0 - $wspzol)) * $wspzol2;
		}
}			



		if ($zoladek == "pelny1/2") {
		if ($index <= 0) {
		$promile3 = ($a * $t * $wspzol2 -  (( 0.14 - $wspwagwzr ) * ($czas0 - $wspzol)) * $wspzol2)/2.4;
		}
		if ($index > 0) {
		$promile3 = $a * $t * $wspzol2 -  (( 0.14 - $wspwagwzr ) * ($czas0 - $wspzol)) * $wspzol2;
		}
}			


		if ($zoladek == "pelny") {						
		if ($index==0) {
		$promile3 = ($a * $t * $wspzol2 -  (( 0.14 - $wspwagwzr ) * ($czas0 - $wspzol)) * $wspzol2)/14;
		}
		elseif ($index==1) { 
		$promile3 = $a * $t * $wspzol2 -  (( 0.14 - $wspwagwzr ) * ($czas0 - $wspzol)) * $wspzol2/2;
		}
				elseif ($index==2) {
		$promile3 = $a * $t * $wspzol2 -  (( 0.14 - $wspwagwzr ) * ($czas0 - $wspzol)) * $wspzol2/1.5;
		}
			elseif ($index==3) { 
		$promile3 = $a * $t * $wspzol2 -  (( 0.14 - $wspwagwzr ) * ($czas0 - $wspzol)) * $wspzol2/1.15;
		}
					elseif ($index) {
		$promile3 = $a * $t * $wspzol2 -  (( 0.14 - $wspwagwzr ) * ($czas0 - $wspzol)) * $wspzol2;
		}
}

		if ($czaspicia == 0.1) {
			$czaspicia = 0;
		}
		if ( $czas0 - $czaspicia > 0) {
		  $czasodkonca = $czas0 - $czaspicia;
	  } else {
		  $czasodkonca = "--";
 	 	}
		$godzina1 = $godzina + $czas0;

		while ($godzina1 >= 24) {
			$godzina1 = $godzina1 - 24;
		}
		$promile3wsw = round($promile3, 2);
		if ($promile3 > 0 && $promile3 <= 7) {
			$returned .= "promile$index=$promile3wsw&";
		}
		if ($promile3 <= 0) {
			$returned .= "promile$index=0.00&";
		}
		if ($promile3 > 7) {
			$returned .= "promile$index=zgon&";
		}
		$czas0 = $czas0 + 0.5;
		$index++;
	}

Najtańsze przedłużenia domen: masternet.pl468x60.jpg

50 zł w zakładzie bez ryzka - betclic.pl

Darmowe gry flash

Odnośnik do komentarza
Udostępnij na innych stronach

Zastosuj warunek switch / case: break bedziesz miał bardziej czytelny kod

switch($index)
{
  case '1': $promile3 = ($a * $t * $wspzol2 -  (( 0.14 - $wspwagwzr ) * ($czas0 - $wspzol)) * $wspzol2)/14; break;
  case '2': $promile3 = $a * $t * $wspzol2 -  (( 0.14 - $wspwagwzr ) * ($czas0 - $wspzol)) * $wspzol2/2; break;
  ///itd...

Edytowane przez Mion

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel

Artykuły medyczne -> Jak otrzymać receptę online od lekarza? Przydatne informacja na temat e-recepty.

Odnośnik do komentarza
Udostępnij na innych stronach

 if ($zoladek == "pelny") {						
		if ($index==0) {
		$promile3 = ($a * $t * $wspzol2 -  (( 0.14 - $wspwagwzr ) * ($czas0 - $wspzol)) * $wspzol2)/14;
		}
		elseif ($index==1) {
		$promile3 = [b]([/b]$a * $t * $wspzol2 -  (( 0.14 - $wspwagwzr ) * ($czas0 - $wspzol)) * $wspzol2[b])[/b]/2;
		}
				elseif ($index==2) {
		$promile3 = [b]([/b]$a * $t * $wspzol2 -  (( 0.14 - $wspwagwzr ) * ($czas0 - $wspzol)) * $wspzol2[b])[/b]/1.5;
		}
			elseif ($index==3) {
		$promile3 = [b]([/b]$a * $t * $wspzol2 -  (( 0.14 - $wspwagwzr ) * ($czas0 - $wspzol)) * $wspzol2[b])[/b]/1.15;
		}
					elseif ($index) {
		$promile3 = $a * $t * $wspzol2 -  (( 0.14 - $wspwagwzr ) * ($czas0 - $wspzol)) * $wspzol2;
		}
}

Jeśli dobrze zrozumiałem, to chodzi o brak nawiasów :) A do tego, przychylę się do tego, co powiedział Mion

E: Nie wiem, czemu w tagach CODE nie uznaje tagów B

Edytowane przez mrbox
Odnośnik do komentarza
Udostępnij na innych stronach

Barak nawiasów wywalał by strasznego parsera errora wiec chyba nie o to mu chodzi... ;)

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel

Artykuły medyczne -> Jak otrzymać receptę online od lekarza? Przydatne informacja na temat e-recepty.

Odnośnik do komentarza
Udostępnij na innych stronach

Wiec jak chodzi o nawiasy to sam musisz się z tym uporać, bo co to za problem jak używasz odpowiednio czytelnego formatowania kodu w kolejności zgodnej z logiką działania programu

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel

Artykuły medyczne -> Jak otrzymać receptę online od lekarza? Przydatne informacja na temat e-recepty.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności