# Loops and arrays

Hi
I'm trying to write a loop that does the following :-
Takes an array of index values that applies to a string adds one to the value of the index and then returns the character in this position.
There are only four types of character within the string so I have tried to solve it with the following code:-
for (int i=0; i < indexa.length; i++)
if(genome.charAt(indexa[i] + 1) == 'a')
indexia[i] += indexa;
else if(genome.charAt(indexa[i] + 1) == 'c')
indexic[i] += indexa[i];
else if(genome.charAt(indexa[i] + 1) == 'g')
indexig[i] += indexa[i];
else if (genome.charAt(indexa[i] + 1) == 't')
indexit[i] += indexa[i];
I'm trying it this way but it does'nt seem to work - I've only succeeded in confusing myself - any tips would be much appreciated

Sorry, I should have explained it better.
The situation I've got is something like this:-
I've got a string that looks something like this
'aactgctcct'
next - I've got four different arrays, each corresponding to the index of each character a, c, t and g
so they look something like this
indexa = {0,1}
indexc = {2,5,7,8}
indext = {3,6,9}
indexg = {4}
I am presently stuck at the next part - for which I have to return the character that is to the immediate right of the index value in the string that was analysed initially.
e.g. for indexa ;
0 = a
1 = c
for indexc;
2 = t
5 = t
7 = c
8 = t
etc
I don't know if this makes my predicament any clearer - I'm a genetics student this java is very new to me - I'm kinda muddling through but this bit has got me stumped !!!

### Similar Messages

• Loops and Arrays help

Hi,
I'm a freshman in college and new to java. I am completely lost and really need help with a current assignment. Here are the instructions given by my teacher...
Building on provided code:
Loops and Arrays
Tracking Sales
Files Main.java and Sales.java contain a Java application that prompts for and reads in the sales for each of 5 salespeople in a company. Files Main.java and Sales.java can be found here http://www.ecst.csuchico.edu/~amk/foo/csci111/labs/lab6N/Main.java
and here http://www.ecst.csuchico.edu/~amk/foo/csci111/labs/lab6N/Sales.java It then prints out the id and amount of sales for each salesperson and the total sales. Study the code, then compile and run the program to see how it works. Now modify the program as follows:
1. (1 pts) Compute and print the average sale. (You can compute this directly from the total; no new loop is necessary.)
2. (2 pts) Find and print the maximum sale. Print both the id of the salesperson with the max sale and the amount of the sale, e.g., "Salesperson 3 had the highest sale with \$4500." Note that you don't necessarily need another loop for this; you can get it in the same loop where the values are read and the sum is computed.
3. (2 pts) Do the same for the minimum sale.
4. (6 pts) After the list, sum, average, max and min have been printed, ask the user to enter a value. Then print the id of each salesperson who exceeded that amount, and the amount of their sales. Also print the total number of salespeople whose sales exceeded the value entered.
5. (2 pts) The salespeople are objecting to having an id of 0-no one wants that designation. Modify your program so that the ids run from 1-5 instead of 0-4. Do not modify the array-just make the information for salesperson 1 reside in array location 0, and so on.
6. (8 pts) Instead of always reading in 5 sales amounts, allow the user to provide the number of sales people and then create an array that is just the right size. The program can then proceed as before. You should do this two ways:
1. at the beginning ask the user (via a prompt) for the number of sales people and then create the new array
2. you should also allow the user to input this as a program argument (which indicates a new Constructor and hence changes to both Main and Sales). You may want to see some notes.
7. (4 pts) Create javadocs and an object model for the lab
You should organize your code so that it is easily readable and provides appropriate methods for appropriate tasks. Generally, variables should have local (method) scope if not needed by multiple methods. If many methods need a variable, it should be an Instance Variable so you do not have to pass it around to methods.
You must create the working application and a web page to provide the applications information (i.e., a page with links to the source code, the javadoc and an object model) to get full credit. You can use the example.html's from the last two labs to help you remember how to do this.
I'm not asking for someone to do this assignment for me...I'm just hoping there is someone out there patient and kind enough to maybe give me a step by step of what to do or how to get started, because I am completely lost from the beginning of #1 in the instructions.
Any help would be much appreciated! Thank you!
Message was edited by:
Scott_010
Message was edited by:
Scott_010

First ask the person who gave this asignment as to why do you require two classes for this , you can have only the Sales.java class with main method in it . Anyways.
Let Main.java have a main method which instanciates a public class Sales and calls a method named say readVal() in Sales class.
In the readVal method of sales class define two arrays i.e ids and sales. Start prompting the user for inputting the id and sales and with user inputting values keep storing it in the respective arrays .. Limit this reading to just 5 i.e only 5 salesPerson.
Once both the arrays are populated, call another method of Sales class which will be used for all computations and output passing both the arrays.
In this new method say Compute() , read values from array and keep calculating total,average and whatever you want by adding steps in just this loop. You can do this in readval method too after reading the values but lets keep the calculation part seperate from input.
You must create the working application and a web page to provide the applications information (i.e., a page with links to the source code, the javadoc and an object model) to get full credit. You can use the example.html's from the last two labs to help you remember how to do this. I think this is ur personal stuff , but if you want to use web page , you probably will require to use servlet to read values from the html form passed to the server.

• Result set looping and arrays??????????

Hey i have a result set problem in using an applet connected to a database.
After i have accessed a database, i am using a result set to store these values, then put them into arrays to out put to screen. im using:
count = 0;
while(rs.next())
lecturer[count] = rs.getString("FirstName") + " " + rs.getString("Surname");
room[count] = rs.getString("Room_No");
sentence = rs.getString("Subjects");
if(sentence.length()>12)
space = sentence.indexOf(" ");
subject[count] = sentence.substring(0,(space));
subject2[count] = sentence.substring((space+1),sentence.length());
else
subject[count] = sentence;
subject2[count] = " ";
timeslot[count] = rs.getInt("Time_slot");
count++;
resCount++;
rs.close();
stm.close();
The while is there untill there are no more values in the result set. This should work(in theory). But for some reason the while loop goes around and around until 'size' (which is the size for all the arrays) is reached. This is a set value at the start of the applet. But whenever i change it the while loop goes around that many times without fail. this results in duplicate outputs to screen, that i dont want.
Anyone got any ideas????????????

This flow doesn't make too much sense to me. Why are you setting an absolute limit on the length of the array, if it should really be determined by the number of rows in your resultset. It sounds like you would be better off using a Collection class, like:
List names = new ArrayList();
while(rs.next()) {
}

• I am looping and  through an array comparing two bigdecimals:

I am looping and through an array comparing two bigdecimals:
I get the max for valueB only if I have multiple items. not when I have one item why would that be:
val=0;
if (array.compareTo(valueB) > 0) {

Hi. You were wise to trace the value of n. Your problem seems
to be that the tests succeed (almost always) in the very first
iteration because they truly don't match (where n = 0) and
execution breaks out. You need to adjust the logic. As one
approach, while sticking with your code and not changing it too
much (such as using more efficient int vs Number):
at the very top, define a counter var ct:int = 0;
before the testing loop, define a flag, such as var
flag:boolean = false;
you could then invert the logic in the loop and test for ==
rather than for !=
if you find a match, do--> flag = true;
and break
at the end of testing, use the flag to decide whether to
store the new value
if (!flag) {
ct++;
also, use a while loop for controlling the whole thing-->
while(ct < max) { }
to know when you're done
You can also check out the Array functions indexOf() and
some(), to make things more efficient and faster/easier
when you're all done, you can also look into using if (a != b
&& c != d)
for efficiency, instead of nesting them separately
good luck :)

• Loops in arrays or structures

Loops in arrays or structures
I was given a project on html reports and
They have advised me to use Loops in arrays or structures
At this point I am a novice at this html reporting system. I
would like to know how I can use loops in arrays or structures.
How is it beneficial are
1. Structures
2. Arrays
3. loops in for both
for my reports.

Structures are great if you understand them, they are
basically just arrays organized by keywords rather than index
numbers.
Arrays are very nice, as you can just run through loops to
access each element, as they are all indexed by numbers 0-x.
loops are great to navigate through both. All you have to do
is set an loop to run through x amount of iterations of the array
or structure (where x is the length of the array, or number of
elements in the structure). Loops are great due to the small amount
of code they require.

• Combining formula node and arrays for calculatio​n

Hello all!
I have two arrays containing values defined by me. Each value of respective column and row index shall be used in a formula to calculate the new value for the respective column and row, to build a new array for further use. This shall be done several times during a simulation with variable function parameters.
I am aware that I should probably use a for loop for this calculation, but I am curious to how I should build such a procedure.
Any ideas?

Hi Euler123,
Let's say that you have an array of fix size and with values in it. Then you'll need to use auto indexing at the beginning of each for loop input tunnel (usually it is by default for for loops) as shown below:
In the first iteration of the other for loop, it will take the first row values [1, 2, 3] and pass it to the inner for loop (unless you want to extract the values for each column, transpose that 2D array before connecting it to the outer for loop). In the inner for loop, it will execute 3 times and each iteration it will extract each element from the array obtained from the outer for loop.
To build the new array, it's just the opposite. Pass the element out from the for loop and instead of getting a last value tunnel, you'll get an auto indexing tunnel (default for for loops).
Anyways, you'll need to get some basic understanding on LabVIEW first. Here's some tutorials to aid you on understanding For Loops.
http://zone.ni.com/reference/en-XX/help/371361J-01​/lvhowto/auto_indexing_1/
http://zone.ni.com/reference/en-XX/help/371361H-01​/lvhowto/auto_indexing_1/
http://zone.ni.com/reference/en-XX/help/371361G-01​/lvhowto/auto_indexing_1/
Play around with For Loops and use something to slow the execution down like Highlight Execution which allows you to see what is going on. Else, take up some LabVIEW courses
Warmest regards,
Lennard.C
Learning new things everyday...

• Looping and setting cfset values (from a query)

Stuck on how to get this to work.
of doing them individually?
The query this <cfset> references works fine and will
work but repeats...
<cfset ans1 = (qryGetPcts1.q1Ct / qryGetCounts.qID2) *
100>
<cfset ans2 = (qryGetPcts2.q2Ct / qryGetCounts.qID2) *
100>
<cfset ans3 = (qryGetPcts3.q3Ct / qryGetCounts.qID2) *
100>
<cfset ans4 = (qryGetPcts4.q4Ct / qryGetCounts.qID2) *
100>
<cfset ans5 = (qryGetPcts5.q5Ct / qryGetCounts.qID2) *
100>
So I'd like to loop and set them all instead...
<cfloop index="i" from="1" to="27">
<cfset ans#i# = (qryGetPcts#i#.q#i#Ct /
qryGetCounts.qID2) * 100>
</cfloop>
But it's responding with this...
Invalid CFML construct found on line 196 at column 19.
ColdFusion was looking at the following text:
I'm sure I'm missing something simple b/c this must be
possible? Can I use a cfset in a loop?
Help is appreciated

In the main everything is in CF is in a struct. Armed with
<cfloop index="iCount" from="1" to="27">
<cfset variables["ans" & iCount] =
(variables["qryGetPcts" & iCount]["q" & iCount & "Ct"]
/ qryGetCounts.qID2) * 100>
</cfloop>

• Dynamic List - Error processing insertText tag: 'loop' parameter arrays must be...

Hi, I'm using Dreamweaver CS3 and ADDT (PHP/MySQL).
I have many forms that I created with "Create Dynamic List Wizard", and All it's working fine until now, suddendly when I enter an any form, click Application / Server Behaviors, I saw a red symbol "!" next to Dynamic List Layout, I clicked it in order to make any changes, and then when I tried to save I got the following error message:
"Error processing insertText tag: 'loop' parameter arrays must be the same length. The 'loop' parameter 'tableCSSWidth' does not have the same length as the previous 'loop' parameter(s)."
This is happening with others form in my application. I can made some changes through "code", but others no...
I would like to know what its' happening with then "dynamic List" server behavior?
Ernesto

Hello Ernesto,
- go to this location on your disk (enable view of hidden files):
- "c:\Documents and Settings\XP_user\Application Data\Adobe\Dreamweaver 9\Configuration"
( if you are on Windows OS)
or:
( if you are on MAC OSX)
- rename the "Configuration" folder to "Configuration_old"
- open Extension Manager and remove all extensions
- install Developer Toolbox extension
- start DW and check if the problem still occurs
regards,
Ionut

• Last value from a loop and values inside the loop

Hi
Sorry about the confusing heading above, but its late at night and better words do not occur to me rightaway. Let me explain my situation.
I have a single instrument (a voltage source) that is being swept from one value to another for an experiment. It has three VI's : 1. enable o/p. 2. Set a voltage output level. 3. diable o/p.
I am using the error in and error out pins of instrument vis to properly sequence operations. I connect the error out pin of VI 1 to the error in pin of VI 2. Each of these errors is a cluster of three values.
When I try to wire the error out from VI 2 inside the loop to VI 3 outside the loop, the wiring breaks as I am then trying to connect an array (a 1 dimensional n member array of error outs) to a single error in pin. Trying to connect it to an array outside the loop is obviously the same. (I am making an assumption here - while the loop is running, I do not need to make certain of the sequencing of operations by putting a feedback node on VI 2 - that would mean something quite different in any case.).
So, how do I pass the last value (in this case, the error out cluster from the last stage) to error in pin of VI 3 ?
I have read that it might be possible using shift registers. I am quite new to LabVIEW. A somewhat detailed description of what I need to do would be nice.
Thanks.

Hello,
There are basically two options:
Handle the errors outside the for-loop
Handle the errors inside the for-loop
For you solution 1 is the easiest achievable, after the for loop use the 'Merge Errors' VI this will change the 1d-array into a cluster. The downside is that if an error occured later states of the loops don't know this
Solution 2 uses the shift register you mentioned. To use this you have to right-click on the right hand-side tunnel of the error wire (where it leaves the for-loop) and select shift register, sequentially your mouse pointer changes into an downpointed arrow, click on the entry tunnel on the left of the for-loop. What happens is that an error in the for loop is remembered into the next iteration (use execution highlighting to watch these)
Here is some code:
A good start might be:
The link to the LabVIEW Learning Center is here
Ton
Message Edited by TonP on 09-25-2006 08:01 AM
Free Code Capture Tool! Version 2.1.3 with comments, web-upload, back-save and snippets!
Nederlandse LabVIEW user groep www.lvug.nl
My LabVIEW Ideas
LabVIEW, programming like it should be!
Attachments:
Example_BD.png ‏5 KB

• Timed loop with array dimension control

Hello,
I have imported an excel to an array and im trying to use a timed loop to run the values of the array on a timed interval. One of my problems is that the array is 2D and i cant use its length to stop the loop. I want to use witch value of the array in the loop in each iteration of the loop and i want the loop o stop when the counter equals the length of the array. Can someone help me plz here is the labview.

It is really unclear what your question is.  Could you clarify?
If you are struggling with why you have a broken wire it is because you are sending an array to the stop of the loop.  When you use the array size function on a 2D array it returns a 1D array with the size of each dimension.  When you then use the greater than function it returns a 1D array of Booleans.  It compares each element of the array size to the current count of the iteration terminal.
To use this to stop your loop you need to reduce it to a single element some way before you send it to the stop control of the loop.  You could apply an "and" or "or" function to the out put of the greater than or pull out a single index out of the single greater than array.
In the image logical AND, logical OR, or element could be used to stop the loop.  You just need to choose one that gives you the behavior you need.
Lukin
Certified LabVIEW Developer

• For loop wont loop through array built from spread sheet

im probably doing sonthing really silly but........
first i build and array out of data from a spreadsheet (RefLookup)
the spreadsheet contains 3 rows the top row is my label (to be returned later)
the second row it my maxmum value
the third row is my minimum value.
Ref in is my live feed of data to be looked up.
i then put this into a for loop, to loop through the array untill it finds which range of data the Ref in lies.....
then i simply stop the loop and output the index value.
this index value is the used to look up the spreadsheet data again and return the label for that index.
from what i can gather the code should.... work. but it doesnt seem to go passed the first itteration of the for loop
any ideas?
John
Solved!
Go to Solution.
Attachments:
jmRange.vi ‏13 KB
RefLookup.csv ‏1 KB
InRange.PNG ‏34 KB

You need to set the delimiter to comma, else you don't get all data. (read from spreadsheet file)
You are doing this way too complicated. Here's equivalent code. I am sure it can be simplified much more!
You don't need the outer while loop. finding it once is sufficient.
You probably want to add a "select" after the loop that selects NaN instead of the last value if nothing is found, based on the boolean.
Message Edited by altenbach on 03-30-2010 02:55 PM
LabVIEW Champion . Do more with less code and in less time .
Attachments:
finder.png ‏8 KB

• Performance of System.arraycopy and Arrays.fill

I have some code where I call a function about 1,000,000 times. That function has to allocate a small array (around 15 elements). It would be much cheaper if the client could just allocate the array one single time outside of the function.
Unfortunately, the function requires the array to have all of its elements set to null. With C++, I would be able to memset the contents of the array to null. In Java, the only methods I have available to me are System.arraycopy() and Arrays.fill().
Apparently, Arrays.fill() is just a brain-dead loop. It costs more for Arrays.fill() to set the elements to null than it does to allocate a new array. (I'm ignoring possible garbage collection overhead).
System.arraycopy is a native call (that apparently uses memcpy). Even with the JNI overhead, System.arraycopy runs faster than Arrays.fill(). Unfortunately, it's still slower to call System.arraycopy() than it is to just allocate a new array.
So, the crux of the problem is that the heap allocations are too slow, and the existing means for bulk setting the elements of an array are even slower. Why doesn't the virtual machine have explicit support for both System.arraycopy() and Arrays.fill() so that they are performed with ultra-efficient memsets and memcpys and sans the method call and JNI overhead? I.E. something along the lines of two new JVM instructions - aarraycpy/aarrayset (and all of their primitive brethern).
God bless,
-Toby Reyelts

A newly allocated array begins its life with null in its elements. There is no need to fill it with null.
As Michael already stated, I'm not redundantly resetting all of the elements to null. Here's some code that demonstrates my point. You'll have to replace my PerfTimer with your own high performance timer. (i.e. sun.misc.Perf or whatever) Also note that the reason I'm only allocating half the array size in allocTest is to more accurately model my problem. The size of the array I need to allocate is variable. If I allocate the array outside of the function, I'll have to allocate it at a maximum. If I allocate inside the function, I can allocate it at exactly the right size.import java.util.*;
public class AllocTest {
private static final int count = 100000;
public static void main( String[] args ) {
for ( int i = 0; i < 10; ++i ) {
allocTest();
double allocStartTime = PerfTimer.time();
allocTest();
double allocTime = PerfTimer.time() - allocStartTime;
for ( int i = 0; i < 10; ++i ) {
copyTest();
double copyStartTime = PerfTimer.time();
copyTest();
double copyTime = PerfTimer.time() - copyStartTime;
for ( int i = 0; i < 10; ++i ) {
fillTest();
double fillStartTime = PerfTimer.time();
fillTest();
double fillTime = PerfTimer.time() - fillStartTime;
System.out.println( "AllocTime (ms): " + allocTime / PerfTimer.freq() * 1000 );
System.out.println( "CopyTime (ms): " + copyTime / PerfTimer.freq() * 1000 );
System.out.println( "FillTime (ms): " + fillTime / PerfTimer.freq() * 1000 );
private static void allocTest() {
for ( int i = 0; i < count; ++i ) {
Object[] objects = new Object[ 8 ];
private static void copyTest() {
Object[] objects = new Object[ 15 ];
Object[] emptyArray = new Object[ 15 ];
for ( int i = 0; i < count; ++i ) {
System.arraycopy( emptyArray, 0, objects, 0, emptyArray.length );
private static void fillTest() {
Object[] objects = new Object[ 15 ];
for ( int i = 0; i < count; ++i ) {
Arrays.fill( objects, null );
}I getH:\>java -cp . AllocTest
AllocTime (ms): 9.749283777686829
CopyTime (ms): 13.276827082771694
FillTime (ms): 16.581995756443906So, to restate my point, all of these times are too slow just to perform a reset of all of the elements of an array. Since AllocTime actually represents dynamic heap allocation its number is good for what it does, but it's far too slow for simply resetting the elements of the array.
CopyTime is far too slow for what it does. It should be much faster, because it should essentially resolve to an inline memmove. The reason it is so slow is because there is a lot of call overhead to get to the function that does the actual copy, and that function ends up not being an optimized memmove. Even so, one on one, System.arraycopy() still beats heap allocation. (Not reflected directly in the times above, but if you rerun the test with equal array sizes, CopyTime will be lower than AllocTime).
FillTime is unbelievably slow, because it is a simple Java loop. FillTime should be the fastest, because it is the simplest operation and should resolve to an inline memset. Fills should run in single-digit nanosecond times.
God bless,
-Toby Reyelts

• Append variable and array items after a record array search

I would like to update a variable and array item after a record array search, and wanted to know what would be the best way of carrying it out in Javascript.
In this case, if a match is found between the variable and area item, then the postcode item should be appended to the variable.
The same needs to be done for the array items, but I reckon that a for loop would work best in this scenario, as each individual item would need to be accessed somehow.
Btw due to the nature of my program, there will always be a match. Furthermore, I need to be able to distinguish between the singleAddress and multipleAddresses variables.
Hopefully this code explains things better:
// before search
var multipleAddresses = ["Elfield Park", "Far Bletchley", "Medbourne", "Brickfields"];
// this is the record which the search needs to be run against
plot = [{
postcode: "MK1",
area: "Denbigh, Mount Farm",
postcode: "MK2",
area: "Brickfields, Central Bletchley, Fenny Stratford, Water Eaton"
postcode: "MK3",
area: "Church Green, Far Bletchley, Old Bletchley, West Bletchley",
postcode: "MK4",
area: "Emerson Valley, Furzton, Kingsmead, Shenley Brook End, Snelshall West, Tattenhoe, Tattenhoe Park, Westcroft, Whaddon, Woodhill",
postcode: "MK5",
area: "Crownhill, Elfield Park, Grange Farm, Oakhill, Knowlhill, Loughton, Medbourne, Shenley Brook End, Shenley Church End, Shenley Lodge, Shenley Wood",
// after search is run then:
// var singleAddress = "Mount Farm, MK1"
// var multipleAddresses = ["Elfield Park, MK5", "Far Bletchley, MK3", "Medbourne, MK5", "Brickfields, MK2"]
Fiddle here

I would like to update a variable and array item after a record array search, and wanted to know what would be the best way of carrying it out in Javascript.
In this case, if a match is found between the variable and area item, then the postcode item should be appended to the variable.
The same needs to be done for the array items, but I reckon that a for loop would work best in this scenario, as each individual item would need to be accessed somehow.
Btw due to the nature of my program, there will always be a match. Furthermore, I need to be able to distinguish between the singleAddress and multipleAddresses variables.
Hopefully this code explains things better:
// before search
var multipleAddresses = ["Elfield Park", "Far Bletchley", "Medbourne", "Brickfields"];
// this is the record which the search needs to be run against
plot = [{
postcode: "MK1",
area: "Denbigh, Mount Farm",
postcode: "MK2",
area: "Brickfields, Central Bletchley, Fenny Stratford, Water Eaton"
postcode: "MK3",
area: "Church Green, Far Bletchley, Old Bletchley, West Bletchley",
postcode: "MK4",
area: "Emerson Valley, Furzton, Kingsmead, Shenley Brook End, Snelshall West, Tattenhoe, Tattenhoe Park, Westcroft, Whaddon, Woodhill",
postcode: "MK5",
area: "Crownhill, Elfield Park, Grange Farm, Oakhill, Knowlhill, Loughton, Medbourne, Shenley Brook End, Shenley Church End, Shenley Lodge, Shenley Wood",
// after search is run then:
// var singleAddress = "Mount Farm, MK1"
// var multipleAddresses = ["Elfield Park, MK5", "Far Bletchley, MK3", "Medbourne, MK5", "Brickfields, MK2"]
Fiddle here

• Looping an array

I'm trying to loop an array inside another loop and am running into an issue.  The problem is that the inside loop works but it is looping the outisde loop x number of times
This is where the code is so far.  Any ideas what i'm doing wrong?
<cfset myList = ValueList(AccountProducts.PID)>
<cfset myList = listtoarray(myList)>
<CFLOOP QUERY="GetProductList">
<CFLOOP index="VPU" from="1" to="#ArrayLen(myList)#">
<CFIF PID EQ #myList[VPU]#>
<CFINPUT NAME="SKUName" TYPE="checkbox" VALUE="#PID#" CHECKED="Yes" />#SKUName# <br />
<CFELSE>
<CFINPUT NAME="SKUName" TYPE="checkbox" VALUE="#PID#" CHECKED="NO" />#SKUName# <br />
</CFIF>
</CFLOOP>
</CFLOOP>
so an example of what it is doing now is
Product 1
Product 1
Product 1
Product 2
Product 2
Product 2
Product 3
Product 3
Product 3

Coder76 wrote:
I'm trying to loop an array inside another loop and am running into an issue.  The problem is that the inside loop works but it is looping the outisde loop x number of times
Well you are getting exactly what you have coded.
Your output is inside the inner loop, so it is going to output something every time.  The fix that is most similar to what you have already coded would be to set a flag inside the inner loop and do your output in the outer loop.
<CFLOOP QUERY="GetProductList">
<cfset checked = "NO">
<CFLOOP index="VPU" from="1" to="#ArrayLen(myList)#">
<CFIF PID EQ myList[VPU]>
<cfset checked = "YES">
</CFIF>
</CFLOOP>
<CFINPUT NAME="SKUName" TYPE="checkbox" VALUE="#PID#" CHECKED="#checked#" />#SKUName# <br />
</CFLOOP>
But there are other ways to do this that would involve less lines of code using some of the list functions.
I think this would produce the same output.
<cfset myList = ValueList(AccountProducts.PID)>
<CFLOOP QUERY="GetProductList">
<CFINPUT NAME="SKUName" TYPE="checkbox" VALUE="#PID#" CHECKED="#yesNoFormat(listFind(myList,PID))#" />#SKUName# <br />
</CFLOOP>

• Why cant we use sy-index in loop and endloop?where exactly we used sy-index

hi
can u help me for this

Hi...
Genereally Sy-index is used in iterative cases like
while....endwhile
and
Do.... Enddo
In LOOP ..... Endloop.... We should use SY-TABIX....
It would be more consistent we use sy-tabix as we loop at internal table so this SY-TABIX points to the current record its reading...
we can use sy-index but rarely depends on condition.....
SY-INDEX and SY-TABIX will not be same always in LOOP and ENDLOOP
Rewards points if satisfied..
Regards

### Maybe you are looking for

• Displaying International Characters

Some users have been concerned about the fact that Buzzword does not display some international characters - ranging from Greek to Russian. This is accentuated by the fact that we have Buzzword users in well over 100 countries. The problem occurs whe

• Organization structure hierchy table determination in CRM

Hi there, Can you please let me know in which table of CRM the organization hierchy structure is stored. Quick response will be greatly appreciated. Many thanks, Kate

• SAP_CONVERT_TO_TEX_FORMAT

Hi, In the above F.M, what should internal table i_tab_sap_data contain. Can any one help me on this one.

• Move to specific record

I am building a PHP detail page with a navigation list of database records down the left side, and the middle will display info for each of those records, so when one of the links on the left is clicked, the page reloads and displays the relevent inf

• How can I replace the screen of my iPad while I am in Mexico

I will be in Mazatlan, Mexico for several months.  I broke the screen of my iPad mini that i bought in Tucson last November.  How can I get it repaired?