[ Príspevkov: 7 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 01.05.07
Prihlásený: 14.04.17
Príspevky: 413
Témy: 150 | 150

čaute fešáci... robím zase príklad z knihy a mám kod ktorý je uvedený nižšie. problém spočíva v tom že sa mi z celého cyklu while neopakuje proces obsahujúci IF,Elseif..., zopakuju sa vždy iba "echa" a "postinkrementacie".... výsledok je taký že sa mi vyhodí jedna sada príkladov (má sa ich vyhodit zadaný počet) , a x krát "<br><br><br>";
a x krát $porovnavaciecislo; pričom x = zadaný počet sád (tolko malo byt sád príkladov)....mal som to povedne spravené cez while, tak som skúsil do while reku či sa to nespraví a ono nie..... vidíte tam nejakú vadu prosím?

Kód:



<?php
$oblast = $_POST['oblast'];
$sad = $_POST['sad'];
$p = $_POST['p'];
$mx = $_POST['mx'];
$mn = $_POST['mn'];
$max = $_POST['max'];
$min = $_POST['min'];
$porovnavaciecislo = 0;
$po = 1;




do {

if ($oblast==1)
{
   for ($po==1; $po<=$p;)
      {
      $a = mt_rand($min, $max);
      $b = mt_rand($min, $max);
      $sucet = $a + $b;
      if ($sucet <= $mx)
         {
         echo $a . " + " . $b . " =<br>";
         $po++;
         }
      }
}

elseif ($oblast==2)
{
   for ($po==1; $po<=$p;)
      {
      $a = mt_rand($min, $max);
      $b = mt_rand($min, $max);
      $odpocet = $a - $b;
      if ($odpocet >= $mn)
         {
         echo $a . " - " . $b . " =<br>";
         $po++;
         }
      }
}


elseif ($oblast==3)
{
   for ($po==1; $po<=$p;)
      {
      $a = mt_rand($min, $max);
      $b = mt_rand($min, $max);
      $sucin = $a * $b;
      if ($sucin <= $mx)
         {
         echo $a . " * " . $b . " =<br>";
         $po++;
         }
      }
}


else
{
   for ($po==1; $po<=$p;)
      {
      $a = mt_rand($min, $max);
      $b = mt_rand($min, $max);
      $podiel = $a%$b;
      if (($podiel == 0) and ($podiel >= $mn))
         {
         echo $a . " : " . $b . " =<br>";
         $po++;
         }
      }
}

echo "<br><br><br>";
$porovnavaciecislo++;
echo $porovnavaciecislo;
}
while ($porovnavaciecislo <= $sad)

?>



Offline

Užívateľ
Užívateľ
čast cyklu while obsahujuca IF sa mi neopakuje

Registrovaný: 05.09.09
Príspevky: 1141
Témy: 127 | 127
Bydlisko: Lehota pod ...

určite sa to píše takto: for ($po==1; $po<=$p; ) ?!


Offline

Skúsený užívateľ
Skúsený užívateľ
čast cyklu while obsahujuca IF sa mi neopakuje

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14572
Témy: 66 | 66
Bydlisko: Žilina

davider, máš aspoň potuchy aký je rozdiel medzi "do.. while" a "while"? okrem toho si skontrolouj syntax cyklu "for"


_________________
C#, PHP, ...
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 01.05.07
Prihlásený: 14.04.17
Príspevky: 413
Témy: 150 | 150
Napísal autor témyOffline : 24.07.2010 20:52 | čast cyklu while obsahujuca IF sa mi neopakuje

no do while mi vykoná tie veci minimálne jeden raz lebo sa podmienka overuje až na konci; u while to nemusí vykonat vobec lebo sa podmienka overuje na zaciatku....

čo sa týka for tak som tam vynechal tú poslednú vec v zátvorke, ale v knihe písali že je možné vynechat ktorúkolvek čast.....a mne tam nevyhovovalo hned robit inkrementáciu v cykle for, lebo najprv musel ten príklad ktorý mal byt zobrazený prejst podmienkou if.....


EDIT: hmmm...ešte teda pozerám že možno myslíte že by mal byt ten for takto:

"($po=1; $po<=$p; )";;; ale som mal zlé skúsenosti s jedným =, a myslel som si že ked tam dám iba jedno tak že mi bude vkuse priradzovat tú hodnotu, nie porovnávat....... preto som to tak spravil...ale ako pozerám na net, tak to je asi zle


Offline

Skúsený užívateľ
Skúsený užívateľ
čast cyklu while obsahujuca IF sa mi neopakuje

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14572
Témy: 66 | 66
Bydlisko: Žilina

jedno "=" priradenie, dve "==" je porovnávanie. Momentálne máš v tom cykle dvakrát porovnanie:
1.) či je $po rovné 1
2.) či je $po rovné alebo menšie ako $p

si si istý, že to je to, čo si chcel docieliť? Ak chceš cyklus na základe len jednej podmienky (povedzme $po <= $p), treba použiť napríklad cyklus "while", zbytočne tam budeš vymýšľať "for"


_________________
C#, PHP, ...
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 01.05.07
Prihlásený: 14.04.17
Príspevky: 413
Témy: 150 | 150
Napísal autor témyOffline : 24.07.2010 22:58 | čast cyklu while obsahujuca IF sa mi neopakuje

kokos....husté...už to funguje ako má.....nj...mne to nejako vobec nedošlo že tym for premenná ==1 som vlastne povedal nech mi vyhodí sadu príkladov iba v prípade že sa premenná rovná hodnote 1 a tým že sa tam bola inkrementácia tak sa v dalšom kole cyklu už premenná hodnote 1 nerovnala.... nj.... ste dobrý hoši.... dík moc za rady;; bez pcfora by som asi stratil nervy, lebo som celkom labilný ked mi niečo nefunguje a ja neviem nájst chybu.....


Offline

Užívateľ
Užívateľ
čast cyklu while obsahujuca IF sa mi neopakuje

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3115
Témy: 233 | 233
Bydlisko: Nové Zámky

No, ten for cyklus si citaj takto:

Pre premennu $i = 1 (ktora sa rovna 1); pokial $i<10 (mensie ako 10); pripocitavaj k $i jednotku ($i++); Opakuj: { ... }

Samozrejme, mozes tu desinu aj jednotku nahradit aj premennou


_________________
"It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď
 [ Príspevkov: 7 ] 


čast cyklu while obsahujuca IF sa mi neopakuje



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Opakovanie while cyklu

v PHP, ASP

2

277

05.08.2010 10:24

eth4rendil

V tomto fóre nie sú ďalšie neprečítané témy.

zmena cyklu

v Assembler, C, C++, Pascal, Java

4

333

25.03.2011 10:08

zaefrim

V tomto fóre nie sú ďalšie neprečítané témy.

Asembler zrychlenie vykonavania cyklu

v Assembler, C, C++, Pascal, Java

6

266

05.03.2013 19:25

n0sf3ratus

V tomto fóre nie sú ďalšie neprečítané témy.

z funcie do cyklu

v Assembler, C, C++, Pascal, Java

5

208

30.12.2010 8:55

reDo

V tomto fóre nie sú ďalšie neprečítané témy.

Pascal - While

v Assembler, C, C++, Pascal, Java

3

143

09.03.2013 17:50

faraon

V tomto fóre nie sú ďalšie neprečítané témy.

While problem

v PHP, ASP

10

315

23.03.2008 18:01

Blackshadow

V tomto fóre nie sú ďalšie neprečítané témy.

Preco nejde while? help

v PHP, ASP

4

315

29.07.2007 16:19

TECHNODROME

V tomto fóre nie sú ďalšie neprečítané témy.

do-while a i++

v Assembler, C, C++, Pascal, Java

1

152

10.12.2012 19:12

konray

V tomto fóre nie sú ďalšie neprečítané témy.

da sa pouzit nekonecny cyklus na spustenie mesacneho cyklu?

v PHP, ASP

16

735

16.10.2008 15:34

Roko

V tomto fóre nie sú ďalšie neprečítané témy.

Jquery - progress bar - while / for

v JavaScript, VBScript, Ajax

5

192

31.10.2016 14:46

BX

V tomto fóre nie sú ďalšie neprečítané témy.

While + doložený medzizáznam v PHP

v PHP, ASP

4

358

10.05.2011 18:39

richo9996

V tomto fóre nie sú ďalšie neprečítané témy.

Help: CPU runs at max. 30% while running CSGO

v Počítačové hry

3

203

11.12.2014 23:22

Penguin 10

V tomto fóre nie sú ďalšie neprečítané témy.

cast kodu OSS

v HTML, XHTML, XML, CSS

6

371

01.04.2008 20:31

Flety

V tomto fóre nie sú ďalšie neprečítané témy.

Upgrade - časť 2.

v PC zostavy

18

506

20.11.2011 23:20

mino_85

V tomto fóre nie sú ďalšie neprečítané témy.

Chýba časť diakritiky

v Ostatné

15

913

14.08.2008 17:01

neutronmind

V tomto fóre nie sú ďalšie neprečítané témy.

MVC: časť model

v PHP, ASP

2

429

26.01.2011 16:55

Flety



© 2005 - 2018 PCforum, edited by JanoF