French question sur les boucles

fgh3966

Active Member
Licensed User
Bonjour tout le monde.

Je cherche des exemples à propose de boucles qui s'imbriques entre elles, ça me servirait a créer plusieurs fonctions.

Aussi une question dinausorienne
Est ce que l'ancienne possiblité de programmation (basic des années 1980, asm, etc ...) avec la possibilité de branchement direct à des N° de ligne ou label serait possible ?

genre :
ex goto:
goto ligne 12

Merci
 

zed

Active Member
Licensed User
Salut,
goto ligne 12
Ca ne fonctionne pas. Tu dois utiliser un Sub.

J'ai 4 listes et je veux connaitre les valeurs de toutes les listes en 1 seul fois.
Je vais créer une MAP qui contiendra toutes les listes.
Ensuite, je vais boucler sur la MAP pour récupérer les listes une après l'autre.
Dans la première liste, je boucle pour obtenir les valeurs.
Ensuite, la boucle passe à le 2ème liste, etc...
Voici comment on fais.
B4A:
Sub Globals
    'These global variables will be redeclared each time the activity is created.
    Dim list_a As List
    Dim list_b As List
    Dim list_c As List
    Dim list_d As List
End Sub

Sub Activity_Create(FirstTime As Boolean)
    'Activity.LoadLayout("Layout")
    
    list_a.Initialize
    list_b.Initialize
    list_c.Initialize
    list_d.Initialize
    
    list_a.AddAll(Array As String("value1", "value2", "value3", "value4"))
    list_b.AddAll(Array As String("value5", "value6", "value7", "value8"))
    list_c.AddAll(Array As String("value9", "value10", "value11", "value12"))
    list_d.AddAll(Array As String("value13", "value14", "value15", "value16"))
    
        
    Dim mMap As Map = CreateMap(1: list_a, 2: list_b, 3: list_c, 4: list_d)
    For Each myMap As Int In mMap.Keys
        Dim listMap As List = mMap.Get(myMap)
        Log("Parcour la liste : "&myMap)
    
        For Each mI As String In listMap 'list_a, list_b, .....
            Log("Dans la liste : "&mI)
        Next
    Next
End Sub
 

Attachments

  • Boucle.zip
    9.2 KB · Views: 163

fgh3966

Active Member
Licensed User
Bonjour
Merci.
Pour traiter une liste de nombres hexadécimaux , je cherhe une solution pour en éliminer les occurences multiples et les ordonner du plus petit au plus grand sachant que ça démarre a 0 .

Est ce que les passer par les expressions conditionnelles est un bonne solution ?

Merci
 

drgottjr

Expert
Licensed User
Longtime User
un "nombre" hexidecimal n'est pas un nombre, mais une string - chaine - qui peut etre
convertie en nombre. donc, ces "nombres" s'ordennent suivant les regles de tri habituelles
pour strings. pour arranger par valeur numerique, il faudra des pas additionels.

pour eviter duplicata en ajoutant une valeur hexidecimale a une liste ou a un tableau,
un map est le moyen le plus simple. il laisse tomber les doubles silencieusement.
alors, si tu veux savoir quand un double a ete reconnu (et sur le point d'etre laisse), il faudra
des petits pas additionels.

n.b.- si ces nombres hex sur lesquels tu fais le choix d'ajouter ou pas a ton tableau font
partie d'une entree plus grande (eg, dans une base de donnees), il est possible que
plusieurs nombres hex representent des entrees tout a fait distinctes. dans ce cas-la,
n'admettant pas aveuglement des doubles pourrait etre un probleme.

une chose: cette question n'a rien a voir avec le sujet de ce theme. il vaut mieux commencer un autre theme (en fait, c'est la coutume).
des gens qui s'interessent, par example, au probleme de duplicata ne verront pas ce poste car le subject indique "question sur les boucles".
les doubles n'ont rien a voir.
 
Last edited:

MrKim

Well-Known Member
Licensed User
Longtime User
I miss gotos as well. Mainly for a repeated task that uses lots of local variables. .. But you get used to it.
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…