Solved

Is there a way to cycle through array positions based on flags?

Posted on 2002-04-02
195 Views
I'm printing comments from an array and the input constantly varies. I'm cycling through an array, printing comments but in this case there are about 8 different conditions. In some conditions some comments should be left out (based on already flags I set).
Does java allow you to jump positions in an array (inside a loop) based on conditions?

Here's a crude example of what I need to happen.

String comment[] new String[14]
comment[1]="AAAAA";
comment[2]="BBBBB";
comment[3]="CCCCC";
comment[4]="DDDDD";
...
comment[14]="NNNNN";

if (condition 1 == some number) {
}else if (condition 1 == other number) {
}

The comment positions are just examples. I just want to know how (if possible) to achieve this type of condition based cycling through the array.
0
Question by:webratss

LVL 18

Accepted Solution

bobbit31 earned 100 total points
if i understand you correctly, then yes:

if (condition 1 == some number) {
}else if (condition 1 == other number) {
}

0

Expert Comment

Well webratss you are confused if random access ot array is allowed.. there is no doubt you can .. access any element at any time.. just inex should be with in the range of an array size..

this way.. you can print any string from ur Array.. no matter whats ur previous index were or whats ur next message would be..

0

Expert Comment

Hmmm... I would try something like this:

String comment[] = { "AAAA", "BBBB", "CCCC", /*...*/ "NNNN" };
int indices[];

switch(condition){
case some_number:
indices = new int[] {1, 3, 7};
break;
case other_number:
indices = new int[] {1, 2, 3, 4, 5, 8};
break; //and so on. don't forget
default:
indices = new int {}; //so in case nothing applies, nothing will be printed.
}

for(int i = 0; i < indices.length; i++){
System.out.println(comment[indices[i]]);
}

This is easier to maintain, afaic. Hope this helps.
0

LVL 2

Expert Comment

Also a note for webratsass,

array indices go from 0 to n-1 so your example should be:

String comment[] new String[14]
comment[0]="AAAAA";
comment[1]="BBBBB";
comment[2]="CCCCC";
comment[3]="DDDDD";
...
comment[13]="NNNNN";

Hope this helps.
0

LVL 9

Expert Comment

No comment has been added lately, so it's time to clean up this TA.
I will leave a recommendation in the Cleanup topic area that this question is:

Venci75
EE Cleanup Volunteer
0

Expert Comment

per recommendation

SpideyMod
Community Support Moderator @Experts Exchange
0

Featured Post

Suggested Solutions

For customizing the look of your lightweight component and making it look opaque like it was made of plastic.  This tip assumes your component to be of rectangular shape and completely opaque.   (CODE)
After being asked a question last year, I went into one of my moods where I did some research and code just for the fun and learning of it all.  Subsequently, from this journey, I put together this article on "Range Searching Using Visual Basic.NET …
This video teaches viewers about errors in exception handling.
This tutorial will introduce the viewer to VisualVM for the Java platform application. This video explains an example program and covers the Overview, Monitor, and Heap Dump tabs.