J'ai écrit une fonction .oct à utiliser dans Octave qui ne donne pas le résultat que je m'attendais et je pense que le problème pourrait résider dans l'extrait de code donné ci-dessous - est-il correct d'imbriquer l'opérateur logique & & comme je l'ai fait ou doit-il être séparé en utilisant d'autres boucles internes?Logique imbriqué && opérateur permissibles?
if (((final_side_PDF > final_uwr_PDF && final_side_PDF > final_unr_PDF) && final_side_PDF > final_dwr_PDF) && final_side_PDF > final_dnr_PDF)
{
market_model(ii) = 0.0;
}
else if (((final_uwr_PDF > final_side_PDF && final_uwr_PDF > final_unr_PDF) && final_uwr_PDF > final_dwr_PDF) && final_uwr_PDF > final_dnr_PDF)
{
market_model(ii) = 1.0;
}
else if (((final_unr_PDF > final_side_PDF && final_unr_PDF > final_uwr_PDF) && final_unr_PDF > final_dwr_PDF) && final_unr_PDF > final_dnr_PDF)
{
market_model(ii) = 2.0;
}
else if (((final_dwr_PDF > final_side_PDF && final_dwr_PDF > final_uwr_PDF) && final_dwr_PDF > final_unr_PDF) && final_dwr_PDF > final_dnr_PDF)
{
market_model(ii) = -1.0;
}
else if (((final_dnr_PDF > final_side_PDF && final_dnr_PDF > final_uwr_PDF) && final_dnr_PDF > final_unr_PDF) && final_dnr_PDF > final_dwr_PDF)
{
market_model(ii) = -2.0;
}
else
{
market_model(ii) = market_model(ii-1);
}
Modifier en réponse aux commentaires
Je souhaite vérifier que l'un des cinq variables; final_side_PDF, final_uwr_PDF, final_unr_PDF, final_dwr_PDF et final_dnr_PDF; a la plus grande valeur et renvoie un numéro d'identification unique; 0,1,2, -1, -2; en fonction de laquelle est le max. Le code ci-dessus est contenu dans une boucle principale (ii).
Il est OK, vous utilisez "imbriqué' && '", mais nous ne pouvons pas vous aider sans connaître plus de détails. En utilisant 'if-else if-else if -..- else' est très différent de' if ..; si..; ... '. Dépend de ce que vous essayez de faire (: –
Je pense que votre code a besoin de refactorisation .. il y a plusieurs contrôles relationnels qui pourraient facilement être regroupés ce qui conduirait à beaucoup plus de code plus clair – Xeo
Le code que vous avez posté fait ce que vous avez spécifié L'une des choses que vous pouvez essayer est de mettre entre parenthèses chaque vérification final_xx_side> final_yy_size' Les règles de priorité d'opérateur indiquent que '>' est évalué avant '&&' mais j'ai rencontré au moins un compilateur – mtrw