[caml] problème syntaxe avec des if imbriqués

Fermé
Fenring - 31 oct. 2008 à 12:03
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 22 nov. 2008 à 23:16
Bonjour,je suis nouveau sur le forum(donc si le topic est pas à la bonne place d'avance mes excuses)
je fais un peu(mais vraiment peu^^) de caml,et j'ai un problème dans un programme, je vous mets la partie de programme qui coince:

if !s1<= !d1 then begin
if !s2<= !d1 then permutation P1 P1;
else if !s2<= !d2 then permutation P1 P2;
else if !s2<= !d3 then permutation P1 P3;
else if !s2<= !d4 then permutation P1 P4;
else if !s2<= !d5 then permutation P1 P5;
else permutation P1 P6; end

else if !s1<= !d2 then begin
if !s2<= !d1 then permutation P2 P1;
else if !s2<= !d2 then permutation P2 P2;
else if !s2<= !d3 then permutation P2 P3;;
else if !s2<= !d4 then permutation P2 P4;
else if !s2<= !d5 then permutation P2 P5;
else permutation P2 P6; end

Donc en fait,il s'agit de faire des if imbriqués,il me met erreur de synthaxe au bout du premier else, donc je suppose que j'ai une erreur dans ma façon de les imbriquer,mais je vois pas trop comment les imbriquer alors(je débute,comme je l'ai dit), j'aimerai une explication et sinon pensez-vous qu'un match soit plus approprié?
Merci d'avance,Fenring.

1 réponse

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
22 nov. 2008 à 23:16
La répétition de tes données pourrait être traitées par des itérations :
let d=[| d1; d2; d3; d4; d5|];;
let p=[| p1; p2; p3; p4; p5; p6|];;

if !s1<= !d1
	then s:= !s1
	else s:= !s2;;
let continue=ref true and i=ref 1;;
while !continue && !i<5 do				
	if s<=d.(!i-1)	then	begin
				permutation p.(0) p.(!i-1);
				continue:=false;
				end;
	i:= !i+1;
	done;;
if !continue then permutation p.(0) p.(5);;
0