Initializing variables inside for-loop?

Dear all,
It's been a while since I last programmed in Java, and my skills seem to be a bit rusty.
I have a question for you here: suppose I need to initialize n (let's say 10) different integers, I suppose I couldn't use something like this:
for(int i = 0; i < 10; i++){
  int <&iquest;VALUE?> = i;
}Is there a way to dynamically initialize <VALUE>, for instance something like ("integer" + i)? (integer0=0, integer1=1, integer2=2, etc.)
Thank you,
Maarten

You need to declare the arrays in a context outside of the for loop, the for loop context will end and so will all of your locally declared variables. Now there is a way around that:
Make an ArrayList, in a "Global context" to your loop, and initialize your variables in the for loop, then add them to the ArrayList, once you are out of the loop, then the ArrayList will hold your references to your variables and keep them from being disposed. When you are done with them, then just remove them from the ArrayList.
ArrayList<myNodes> al = new ArrayList<myNodes>(); //in a "global context"
for(int i=0; i<iSomeNumber; i++){
  MyNode n = new myNode();
  //do what ever
  al.add(n);
}If you need key values to look up your nodes by, then you a Map of some type instead of an ArrayList.

Similar Messages

  • Best practice: Using break statement inside for loop

    Hi All,
    Using break statment inside FOR loop is a best practice or not?
    I have given some sample code:
    1. With break statement
    2. With some boolean variable that decide whether to come out of the loop or not.
    for(int i = 0; i < 10; i++){
    if(i == 5){
    break;
    boolean breakForLoop = false;
    for(int i = 0; i < 10 && !breakForLoop; i++){
    if(i == 5){
    breakForLoop = true;
    The example may be a stupid one. But i want to know which one is good?
    Thanks and Regards,
    Ashok kumar B.

    Actually, it's bad practice to use break anywhere other than in conjunction with a switch statement.Presumably, if you favour:
    boolean test = true;
    while (test)
      test = foo && bar;
      if (test)
    }overfor (;;)
      if (! ( foo && bar) ) break;
    }then you also favour
    boolean test = foo && bar;
    if (test)
    }overif (foo && bar)
    }Or can you justify your statement with any example which doesn't cause more complexity, more variables in scope, and multiple assignments and tests?

  • How do we use if statement in labview?moreover can i use if statement inside for loop?

    how do we use if statement in labview?moreover can i use if statement inside for loop?

    The if statement in LabVIEW is the Case structure. You can find that on the Structures palette right next to the For Loop. If you're still on the same subject about terminating a for loop early, then what you do is enclose your functions inside the loop with a case statment and make one of the case's empty except for one or more constants that you might have to wire. Hopefully, the attached picture will explain what I mean. Also, as I mentioned in one of your other posts, I think this technique is not as good as using a while loop. The array in the attached example is the same size no matter what and you may have to handle stripping extra or invalid elements.
    Attachments:
    For_Loop_with_Case.jpg ‏21 KB

  • Difference between initialising variables inside a loop and outside it.

    What is the difference between initialising a variable, say a String, inside a loop and outside it?
    Are there performance differences, memory allocation issues etc? Or is there no difference at all?
    For example:
    1. Outside the loop
    String s = "";
    while (foo)
    s = some variable;
    2. Inside the loop
    while(foo)
    String s = some variable;

    .Hence, it definitely improves the performance of your code.That only depends on the code. Modern VM like Hotspot are very good at optimizing things.
    for the in the loop thing.
    Its true you need to create a new Object but memory doesnt need to be reallocated always because the VM knows the previiously declared Object has become available (it went out of scope)
    Generaly: dont use the outside loop because you think it might help performance: always leave micro-optimizations for the VM.
    It might be faster but its not a certantiy

  • Creating variables using for loop

    is there any way in java to create a variable called "xi" using a for loop say:
    for (int i =0; i < 1000000;i++){
      int xi;
    }so I want to create a million of different variable names based on the i... I know this may be a stupid question

    I don't think there is a way to do this. More importantly why do you want to do this? If you dynamically generate 1 million variables, then how will the rest of your program refer to them? Maybe what you need is some sort of collection.

  • Is it possible to put property node inside for loop?

    I have created three separate property nodes (plot color) for my 3 XY graphs.
    Is it possible to have one property node, say plot_color_i and put this inside the for loop where i runs from 1 to N,
    where plot_color_1 would update XY Graph 1, plot_color_2 would update XY Graph 2, etc.?
    See the attached VI.
    Solved!
    Go to Solution.
    Attachments:
    XY Plot Example.vi ‏18 KB

    Yes.  Create an array of references of the XY graphs and have that auto-index into the property node in the For Loop
    Attachments:
    XYPlotExampleMOD.vi ‏18 KB

  • Stacked sequence inside for loop question

    Hi everyone,
    I am new to LabVIEW and I just want to make a for loop with a stack sequence inside. I want it so that when the for loop executes for the n-th time, the stacked sequence is at the n-th frame (because each frame contains different tasks to be carried out). Is this possible? or is there an alternative equivalent method? Please help me out! Thanks!!

    Thank you Norbert for the words of advice.
    Try to avoid Stacked Sequence Structures at all cost.  They are a nightmare to deal with when maintaining the code and they do not offer simple scalability, especially if you need to deal with parallelism.
    As Norbert suggested, State Machines is the way to go.  Try to avoid naming covention such as 1...2...3...4...5.......9999.  Give the name of each case based on what that case does.  Create a TypeDef Control for the state selector (you'll thank me after having changed it for the 5th time   ).
    There are probably 100's of examples in this forum.
    RayR

  • State Diagram inside For Loop

    I created a fairly involved for-loop with a flat sequence inside of it.  The sequence had about four events that occured, and since it was kind of ugly, I thought I'd try the State Diagram Toolkit to replace the majority of the code.  When I selected state diagram from the pallete, I was outside my for-loop.  I drew up the various states/transitions, then realized that all this code needed to be inside the for-loop, but LV won't let me place state diagram-generated code inside the for-loop.  I select everything related to the state diagram, but when I drag into the for-loop, only the comments come inside.  I even tried generating a new for-loop and placing the state code inside.  No luck. Any thoughts?

    "Any thoughts?"
    Yes but not any that will help.
    1) Just modify your SD so that the exit loops back to the start while there are still things to do. Forget the outer For loop.
    2) THe observations you reported are correct. When I first discovered these limitiations I said "That sucks!". Since then I have learned a bit and have grown to love the SDE.
    The SDE is JUST (note: "just" is a four letter word around here ) a LV application that ofers a very limited GUI consisting of a picture control that then scripts (see LAVA Scripting Forum for info on scripting) your SD for you. SCripting LV code is no easy task. My experiments with scripting has shown that I have to keep a database of the contents of the LV diagram my code is developing to keep track of what is where. Well it turns out that the structure of a LV diagram is a lot like the structure of a FP in that you start with a "root" object either the FP or the BD. THe BD then has structures on it, like seq's loops etc with unlited nesting possible.
    Now the SD created by the SDE is really just a fancy while loop with an case structure and code to support the driving enum. In order for you to be able to edit the SD the SDE needs to know what is htere already so it can show the diagram. It "KNOWS" by looking at its internal DB (I believe is stored inside of VI along with the enum.ctl) of the SD. To keep the DB updated, the SDE must be used to manipulate the SD.
    Stop rambling and guessing and get to the point!
    Moving the SD is just not supported by the SDE so it can not be done. To do so would require the SDE be able to "look" at the diagram, and repeat all of its work in the new location in the diagram.
    BTW: Thank you for trying out and asking about the SDE. the more talking we do on this subject, the sooner the SDE will be updated.
    My SDE wishlist (partial)
    Add comments to diagram from SDE screen.
    Add data structures to SD (shift registers) from SDE screen.
    Add "un-do".
    Select multiple objects on SDE screen and move or allign.
    Select multiple objects on SDE screen and do "create sub-State-Diagram".
    Allow watching more than one SDE in execution highlighting at the same time.
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • Commit inside For Loop

    Hi,
    I have a query which is updating millions of records and is inside a for loop . I have issued commit inside that for loop only . Which one will be better . Should I issue the commit inside the for loop or outside it .
    Thanks in Advance,
    Rahul Guha Ray

    No it is not technically true but ajallen has a valid point. Under traditional rollback segment management reading and updating the same table where large quantities of data were changed with frequent committing was probably the number one cause of snapshot too old errors. However, there are many factors that play into this so even under traditional rollback segment management how likely you are to get an error depends: total size of transaction, total run time, concurrent access, and amount on rollback space available.
    With undo segment space management it largely depends on the total transaction size and runtime verse how much undo you have and your retention policy.
    At some point re-opening the query may indeed be a good idea. One approach is to code to re-open the query only on getting the 1555 error. Some updates however cannot be resumed easily as the update does not mark the row in such a way as the query or where clause conditions can exclude it. In cases like this saving restart information with each commit is necessary.
    A lot of different factors have to go into the decision of how often to commit.
    -- Mark D Powell --

  • ? on How to Load Variable Within For Loop

    Hello,
    I'm a PL/SQL newbee so I apologize up front if this is a basic question. In summary, I'm trying to build a field name within a FOR LOOP and also load this field with it's associated data from an input record and finally load the data to the output record and pipe the row. I can successfully build the field name but don't know how to load it with data from the input record.
    Here is a sample from the code.
    The input table is shown with the 6 different Fnma codes. Instead of checking each code for data, I want to build the field name, load this field name with data from the input record and move the data to the output record.
    CURSOR cur_loan(prod_date_in IN DATE) IS
    Select
    Ln.Ln_No,
    Ln.Prod_Date,
    Ln.Ln_Fnma_Ftr1_Cd,
    Ln.Ln_Fnma_Ftr2_Cd,
    Ln.Ln_Fnma_Ftr3_Cd,
    Ln.Ln_Fnma_Ftr4_Cd,
    Ln.Ln_Fnma_Ftr5_Cd,
    Ln.Ln_Fnma_Ftr6_Cd,
    from LOAN Ln
    where PROD_DATE = '16-FEB-11';
    Here is the FOR LOOP that successfully builds the field name in l_feat_code_name. Then I "assume" by moving this field to l_output that l_output will contain the actual data, not the field name. However, it appears to contain the field name instead of the data.
    FOR l_To IN 1 .. 6
    LOOP
    l_feat_code_name := ('l_loan_rec.ln_fnma_ftr'||l_to||'_cd');
    l_output := l_feat_code_name;
    IF (l_output is not null or
    l_output <> ' ') THEN
    l_out_rec.Inv_Type := l_Fnma_Cd;
    l_out_rec.feat_code := l_output;
    l_out_rec.Src_Delete_Flag := l_src_delete_flag_n;
    PIPE ROW(l_svc_ln_rec);
    END IF;
    END LOOP;
    How can I move the data itself into the l_out_rec.feat_code output record? Thanks in advance.

    Hi,
    l_output is defined as follows:
    l_output varchar2(20) ;
    I appreciate your example.
    Again, after I build l_feat_code_name it contains the column name from the input record, Ln_Fnma_Ftr1_Cd, ....Ftr2...., .....Ftr3..... and so on up to Ftr6. However, I also need the **data value** of Ln_Fnma_Ftr1_Cd, ....Ftr2...., .....Ftr3..... and so on up to Ftr6. My question is how to get the data value. You see below when I move l_feat_code_name to l_output I'm expecting l_output to contain the **data value**. Instead, when I display it in DBMS_output, it shows the column name.
    CURSOR cur_loan(prod_date_in IN DATE) IS
    Select
    Ln.Ln_No,
    Ln.Prod_Date,
    Ln.Ln_Fnma_Ftr1_Cd,
    Ln.Ln_Fnma_Ftr2_Cd,
    Ln.Ln_Fnma_Ftr3_Cd,
    Ln.Ln_Fnma_Ftr4_Cd,
    Ln.Ln_Fnma_Ftr5_Cd,
    Ln.Ln_Fnma_Ftr6_Cd,
    from LOAN Ln
    where PROD_DATE = '16-FEB-11';
    Here is the FOR LOOP that successfully builds the field name in l_feat_code_name. Then I "assume" by moving this field to l_output that l_output will contain the actual data, not the field name. However, it appears to contain the field name instead of the data.
    FOR l_To IN 1 .. 6
    LOOP
    l_feat_code_name := ('l_loan_rec.ln_fnma_ftr'||l_to||'_cd');
    l_output := l_feat_code_name;
    IF (l_output is not null or
    l_output ' ') THEN
    l_out_rec.Inv_Type := l_Fnma_Cd;
    l_out_rec.feat_code := l_output;
    l_out_rec.Src_Delete_Flag := l_src_delete_flag_n;
    PIPE ROW(l_svc_ln_rec);
    END IF;
    END LOOP;

  • Trying to make a variable with for loop

    Trying to pick up a movieClip  instance from my library and set it on stage and make it clickable, (dropdown/dropup) menu). 
    Can anyone help with what I am doing wrong?
    var MenuItem1:Array = new Array("text1", "text2", "text3","text4");
    CreateM(MenuItem1.length);
    function CreateM(Menu1:Number):void
    for(var i:Number=0;i<MenuItem1.length; i++)
          var this["M1"+i]:TextField = new TextField();
          var this["M2"+i]:takki = new takki();
          this["M2"+i].y = this["M2"+i].y-(i*50)+(stage.stageHeight-this["M2"+i].height);
          this["M1"+i].text = MenuItem1[i];
          this["M1"+i].y = this["M1"+i].y-(i*20)+(stage.stageHeight-this["M1"+i].height);
          addChild(this["M2"+i]);
          addChild(this["M1"+i]);
          this["M2"+i].addEventListener(MouseEvent.MOUSE_OVER,clicking);
    function clicking(event:MouseEvent):void
    trace("I am clicking button"&&this["M2"]);

    Try something like this:
    var MenuItem1:Array = new Array("text1", "text2", "text3","text4");
    CreateM(MenuItem1.length);
    function CreateM(Menu1:Number):void
    for(var i:Number=0;i<Menu1; i++) { 
        this["M1"+i] = new TextField();
        this["M2"+i] = new takki();
        this["M2"+i].y = this["M2"+i].y-(i*50)+(stage.stageHeight-this["M2"+i].height);
        this["M1"+i].text = MenuItem1[i];
        this["M1"+i].y = this["M1"+i].y-(i*20)+(stage.stageHeight-this["M1"+i].height);
        addChild(this["M2"+i]);
        addChild(this["M1"+i]);
        this["M2"+i].addEventListener(MouseEvent.CLICK,clicking);
    function clicking(event:MouseEvent):void{
    trace("I am clicking button" && event.target.name);
    Be aware, that you have to work with the positioning, and that the TextFields are overlapping the takkis, so that the clicking is only possible in a minor fraction of the takkis.

  • For Loop Inside A For Loop

    Is it possible to execute all the iterations of the inside for loop for each iteration of the outside for loop? I have attached a screenshot of my program if it helps. If it is possible could you tell me how to do it plz?
    Solved!
    Go to Solution.
    Attachments:
    Capture.PNG ‏53 KB

    One thought I have is that I think you want those feedback nodes reinitializing for each iteration of the outter loop.  Personally, I would change them to be shift registers (it would clean up your diagram a little bit).
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • Problem using local variable in event loop

    I have a state machine from which I want to monitor various controls, including "Start" and "Stop" buttons.  Not every state needs to monitor the controls.  At present, most states run timed loops.  In the first state that reads the front panel, I have an Event structure (inside a While loop) that monitors the various controls' Change Value events.  For numeric controls, I update variables (in shift registers) as needed.  The "Start" button is used to end the While loop controlling the Event structure, allowing the State to exit to the next state.
    My problem comes in subsequent states that employ this same idea.  Here, I put a Local Variable bound to the Start button and use the same code, but it frequently happens that when I enter this particular state, I cannot "turn on" the control -- I push the button, but it stays off.  Curiously, if it was On when I enter, I can turn it off, but then I'm stuck not being able to turn it on.
    I mocked up a very simply routine that illustrates this.  There are two sequences (corresponding to the two states).  Both use an Event loop with a local variable bound to my Stop button (really this is an LED control with custom colors).  I've deliberately moved the "initialization" (the declaration of the control in the block diagram) out of the Event loops -- putting it inside the first loop modifies the behavior in another strange way.
    Here's my thinking on how I would expect this to work:  The code outside Event Loop 1 should have little effect.  Assume the Stop button is initially Off.  You will "sit" in Event Loop 1 until you push the Stop button, changing its value to True; this value will be passed out of the Event case and cause the first While loop to exit.  You now enter the second sequence.  As I understand the Exit tunnel, it defaults to "False", so I'd expect to stay in the second Event loop until I turn the Stop button from On to Off, which will pass out a False, and keep me in the While for one more button push.  However, this doesn't happen -- I immediately exit, as though the "True" value of the Stop local variable is being seen and recognized by the Event loop (even though it hasn't changed, at least not in the context of this second loop).
    An even more curious thing occurs if I start this routine with the Stop button turned on.  Now I start in my Event loop waiting for a change, but this time the change will be from On to Off, which won't cause an exit from the frame.  This will be reflected by having the While loop count increment.  We should now be in the state of the example above, i.e. in an Event loop waiting for the control to be pushed again, and turned On.  However, clicking the control has no effect -- I cannot get it to "turn on".
    Where am I going astray in my thinking?  What is it about this method of doing things that violates the Labview paradigm?  As far as I can tell, what I'm doing is "legal", and I don't see the flaw in my reasoning, above (of course not -- otherwise I'd have fixed it myself!).  Note that because I'm using local variables inside Event loops (and I'm doing this because there are two places in my code where I want to do such testing), the Stop control is not latching (as required).  Is there something that gets triggered/set when one reads a latched control?  Do I need to do this "manually" using my local variable?
    I'll try to attach the simple VI that illustrates this behavior.
    Bob Schor
    Attachments:
    Simple Stop Conundrum.vi ‏14 KB

    altenbach wrote:
    Ravens Fan wrote:
    NEVER have multiple event structures that share the same events. 
    Actually, that's OK.  NOT OK is having multiple event structures in the same sequence structure.
    See also: http://forums.ni.com/ni/board/message?board.id=170&message.id=278981#M278981
    That's interesting.  I had always thought I read more messages discouraging such a thing rather than saying it was okay.  Your link lead me to another thread with this message. http://forums.ni.com/ni/board/message?board.id=170&message.id=245793#M245793.  Now that thread was mainly concentrating on registered user events which would be a different, but related animal. 
    So if you have 2 event structures they each have their own event queue?  So if you have a common event, one structure pulls it off its event queue and it does not affect the other structure's event queue?  I guess the inherent problem with this particular VI was that the second event structure locked the front panel.  Since the code never got to that 2nd event structure because the  first loop never stopped because the change was from true to false.  After reading your post and the others, I did some experimentation and turned off the Lock front panel on the 2nd structure, and that prevented the lockup of the program.
    Overall, the example VI still shows problems with the architecture and I think your answer should put the original poster on the right track.  I think as a rule I would probably never put the same event in multiple structures, I feel there are better ways to communicate the same event between different parts of a program,  but I learned something by reading your reply and about how the event structures work in the background.  Thanks.

  • How to output data outtside a for loop every 10 iterations​?

    Hi friends,
    does any body help me to sort out this problem?
    please check the attchement for my vi.
    all i want is output data from inside for loop to outside for loop every 10 iterations. please do not use local variable.
    Many thanks
    dan
    Attachments:
    output.vi ‏16 KB

    Hi Dan,
    I am not sure what you want to do every 10 iterations with the value outside, but If you want to update your graph every 10 iterations use the following way:
    If you want to handle the specific value every x iterations outside the loop you could either use queues or notifieres.
    BR,
    ThSa
    Message Edited by ThSa on 08-23-2006 09:05 PM
    http://www.newgistics.com
    Attachments:
    1.png ‏6 KB

  • Read data from text file one by one using for loop

    Dear Forum
    I want to read data of single colum of text file inside the for loop one by one(for each iteration value must be replaced by another value of text file).This value is used by a formula inside for loop. also after completion of iterations the values must be plotted on xy graph. How to do it.? please help me.
    profravi

    It's not very efficient to read a file line by line. Much simpler to read it all at once and then auto-index the results inside a for loop. The image below shows a generic solution to your problem. This assumes that the data in the file is in a single column.
    I would also recomend checking ou the learning LabVIEW resources here.
    I would aslos suggest that since this type of question is not specific to either NI-Elvis or the LabVIEW SE, you should post similar questions to the LabVIEW board. If you have problems, attaching a sample of the text file would help.
    Message Edited by Dennis Knutson on 10-18-2007 09:11 AM
    Attachments:
    XY Graph From File.PNG ‏4 KB

Maybe you are looking for

  • My iMac doesn't recognize the hard drive

    Hi all.  I have a question.  I have a iMac G5 20" 2Ghz and I'm trying to instal a replacement hard drive.    It's a WD 320GB HD with wite and blue stiker (It's a WD Caviar Blue).  I'm trying to instal MAC OSX 10.5 it a retail full version DVD and whe

  • Call transaction and session method error

    hi,   suppose i have 100 records, there is an error in 91 record, then my doubt is up to 90 records data is process to database or not? Please clear doubt 1. if it is call transaction, 2.if it is session method.

  • HELP?? Express does not see Extreme

    Hello, I am a PC user who has decided to try the airport system after hearing good things about it. Unfortunately, it is not working; I don't know if it is me or the equipment. I have an existing wireless network. I plugged the Extreme base station d

  • Problems with unlocking Z2 bootloader

    I got "FAILED (remote: Command did not succeed)" messgae - everyhting done with http://developer.sonymobile.com/ everything checked twice. What can cause this problem? (device can have unlocked bootloader)

  • My iTunes crashes when trying to start and says can't open the windows

    My iTunes crashes when trying to start and says can't open the windows