שלח תשובה

זירת השאלות

538
צפיות
1
תשובות

בעיה בלולאת WHILE משורשרת

,‏ 29 בספטמבר, 2006

שלום לכולם ,

עשיתי קוד שמפצל STRING ע"פי מקף-תחתון

מה שרציתי לעשות זה 2 לולאות WHILE שמשווה בין שני המשתנים ומראה את ההשוואה שהיא עושה :


      m="1_2_3_4"
      y=split(m,"_")
      x=split(m,"_")
      i=0
      j=0
        while not i>ubound(y)
            while not j>ubound(x)
                response.write y(i) &"="& x(j) & "-"
              j=j+1
           wend
           i=i+1
       wend


הקוד משום מה עובר רק על הלולאה הפנימית ואילו החיצונית נשארת כאשר i=0 תמיד ולא מקדמת אותו ל-1..2..3

האם מישהו מכיר את הבעייה ואת הפתרון לה?

תגיות:

1 תשובות

  1. Azart הגיב:

    אתה טועה
    הלולאה החיצונית מבוצעת במלואה גם כן.
    יש לך שגיאה לוגית, שמקורה בכך ש-j אינו מאופס לאחר שנגמרה הלולאה הפנימית.
    לאחר שהתנאי בלולאה הפנימית מפסיק להתקיים (מפני ש-j נעשה גדול מגודל המערך), הוא ממשיך לא להתקיים בכל איטרציה של הלולאה החיצונית, וכל מה שהלולאה החיצונית עושה הוא לקדם את i עד שהוא עובר את גודל המערך.
    כדי לפתור את הבעיה, העבר את השורה j=0 כך שתהיה מיד מתחת לפתיחת הלולאה החיצונית.

שלח תשובה