Skocz do zawartości

if w pętli while


amii

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...

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

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

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
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

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
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • 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