# A problem with for loop..

i have a problem with this code :
int [] P = new int [M.length];
System.out.println(P[0]+" "+P[15]);
for (int i = 0 ; i < P.length ; i++){
for (int j = i + 1 ; j < P.length ; j++){
if (j == (P.length - 1) && M [ i ] != M [ j ]){
P [ i ] = M [ i ] ;
else if ( M [ i ] != M [ j ] ) continue ;
else break;
for (int i = 0 ; i < P.length ; i++){
System.out.println(P [ i ]);
this code to copy distinct values in array M and print them into array P
M and P are both of size 16
the problem is the previous code doesn't work for P[15]
and i don't know way
if i have in M {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}
P will be {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,0}
could any body help ?

I am sorry, but you are not done. May-be your code does what it is supposed to do but it is hard to understand. An important part of programming is not just to get your code to work, but to write code that is easily maintainable. You are probably quite new programming and I do not want to discourage you. Keep working hard and it will come.
You almost had the solution a while back:
int [] P = new int [M.length];
System.out.println(P[0]+" "+P[M.length]);
boolean unique;
for (int i = 0 ; i < P.length ; i++){
// All non-zero entries in P with index less than i are unique in M.
unique = true; //Assume M[i] unique until contrary has been proven
for (int j = 0 ; j < P.length ; j++){
if (i != j && M[i] == M[j]) { //found another entry in M with the same value as M[i]
unique=false;
break;
if (unique) { // M[i] is unique in M.
P[i] = M;
for (int i = 0 ; i < P.length ; i++){
System.out.println(P [ i ]);
}This code executes in time O(n^2). It is possible to achieve O(nlog(n)) by
1) copy M into P
2) sort P
3) iterate through P and set duplicates to 0.

### Similar Messages

• Help on changing array elements with For loop

Hi,
I'm wondering if anyone can help me with this problem.  I'd like to be able to modify elements of an array with For loop.  In the attached VI, my goal is to have an array of [0 1 2 3 4 5], but instead what I've got is [2 2 2 2 4 5].  I initialized the array with a value of 2 to help me identify which elements are changing.  Can anyone help me pointing where my mistake is?  Thanks.
Peter
Attachments:
Array test.vi ‏19 KB

It's a classic issue for LV newbies. In this case you HAVE to use a
shift register otherwise the modifications of previous cicles are lost.
It's all easier than it's seems, see attached vi.
bye,
manga
Attachments:
Array test 2.vi ‏19 KB

I am having quite a bit of trouble with a program im working on. What i am doing is reading files from a directory in a for loop, in this loop the files are being broken into words and entered into a while loop where they are counted, the problem is i need to count the words in each file seperately and store each count in an array list or something similar. I also want to store the words in each file onto a seperate list
for(...)
//Go through each line of the first file
while(matchLine1.find()) {
CharSequence line1 = matchLine1.group();
//Get the words in the line
String words1[] = wordBreak.split(line1);
for (int i1 = 0, n = words1.length; i1 < n; i1++) {
if(words1[i1].length() > 0) {
int count= 0;
count++;
}This is what i have been doing, but with this method count stores the number of words in all files combined, not each individual file, and similarly list1 stores the words in all the files not in each individual file. Does anybody know how i could change this or what datastructures i could use that would allow me to store each file seperately. I would appreciate any help on this topic, Thanks!

Don't try to construct complicated nested loops, it makes things a
tangled mess. You want a collection of words per file. You have at least
zero files. Given a file (or its name), you want to add a word to a collection
associated with that file, right?
A Map is perfect for this, i.e. the file's name can be the key and the
associated value can be the collection of words. A separate simple class
can be a 'MapManager' (ahem) that controls the access to this master
map. This MapManager doesn't know anything about what type of
collection is supposed to store all those words. Maybe you want to
store just the unique words, maybe you want to store them all, including
the duplicates etc. etc. The MapManager depends on a CollectionBuilder,
i.e. a simple thing that is able to deliver a new collection to be associated
with a file name. Here's the CollectionBuilder:public interface CollectionBuilder {
Collection getCollection();
}Because I'm feeling lazy today, I won't design an interface for a MapManager,
so I simply make it a class; here it is:public class MapManager {
private Map map= new HashMap(); // file/words association
CollectionBuilder cb; // delivers Collections per file
// constructor
public MapManager(CollectionBuilder cb) { this.cb= cb; }
// add a word 'word' given a filename 'name'
public boolean addWord(String name, String word) {
Collection c= map.get(name);
if (c == null) { // nothing found for this file
c= cb.getCollection(); // get a new collection
map.put(name, c); // and associate it with the filename
return c.add(word); // return whatever the collection returns
// get the collection associated with a filename
public Collection getCollection(String name) { return map.get(name); }
}... now simply keep adding words from a file to this MapManager and
retrieve the collections afterwards.
kind regards,
Jos

• Qsm pc, problem with stop loop

Hello,
i tested queue producer/consument with event case, but i have problem with stop the both loop, can you help me with attachment ?
Attachments:
queue_mereni_1.zip ‏46 KB
Global_queue.zip ‏3 KB

i had problem with upload *.vi (some mistake), so when a upload *.zip it was ok, but i do not know why..
please, when i put time out constatn, so when i push "stop" then both loops end - it is ok BUT:
when i push "stop 2" button (for the second loop) so there is error (in attachment), please do you know why?
i am sorry for a lot of questions but i try understand it..
thank you
Attachments:
qsm.jpg ‏31 KB

• Problem with a loop

Hello All
I'm working on a Flash Gallery and I'm having some issues
with a loop and it's probably something simple I don't know so I
thought I'd see if someone can help me.
the problem is that once the thumbnail panel is populated the
image I want to display from a rollover is no longer defined. As I
mentioned I was hoping someone could shed some light on this.
[code]
// create the thumbnail panel
var i = -1;
while(++i<thumbList.length) {
name = "item"+i;
thumbs_mc.duplicateMovieClip(name,i);
this[name]._x = i*spacing;
this[name].contentPath = "children/" + thumbList
// show the larger pic on rollover
this[name].onRollOver = function() {
picture.contentPath = "children/" + thumblist;
[/code]
by using this I get an error of: "error opening
URL...undefined"

mark2685 wrote:
Well, the array of student objects is larger than 2, there are about 6 students so it would have to get the highest from TestScore 1 and the lowests from TestScore 2 out of all of the students, not just those 2. And I want the entire object stored in the chessTeam array. Does this make sense?No you're not reading my code right (BTW - add an open brace on the for loop top and set score2 to 101), or else I'm not understanding you requirements correctly. The student array can hold as many Students as needs be. You stated that you have only two scores that you care about and so that's the 1 and the 2. Based on the Student class you've shown us, this should work, but you'll have to try it before you know.

• Probably simple problem with while loops

I was programming something for a CS class and came across a problem I can't explain with while loops. The condition for the loop is true, but the loop doesn't continue; it terminates after executing once. The actual program was bigger than this, but I isolated my problem to a short loop:
import java.util.Scanner;
public class ok {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
String antlol = "p";
while(antlol == "p" || antlol == "P"){
System.out.println("write a P so we can get this over with");
antlol = scan.nextLine();
//it terminates after this, even if I type "P", which should make the while condition true.
}

Thanks, that worked.
I think my real problem with this program was my CS
teacher, who never covered how to compare strings,Here's something important.
This isn't just about comparing Strings. This applies to comparing ANY objects. When you use == that compares to see if two references refer to the same instance. equals compares objects for equality in the sense that equality means they have equal "content" as it were.

• Visa open and close with "for loops"

Hello everyone
In my program I used two "for loops" which include visa write and read for a RS32 port. it is not possible to close a devise with visa close as the out put is changed to 2D array!!! would you please help me with this error
Attachments:
ACU_232.png ‏108 KB

sam009 wrote:
It works for "for loop" but what about "event structure loop" still is error for that.
Right-click on the output tunnel and uncheck "Use Default if Unwired".  You will now be forced to wire the VISA Resource through each case.
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines

• Performance Problems with "For all Entries" and a big internal table

We have big Performance Problems with following Statement:
SELECT * FROM zeedmt_zmon INTO TABLE gt_zmon_help
FOR ALL ENTRIES IN gt_zmon_help
WHERE
status = 'IAI200' AND
logdat IN gs_dat AND
ztrack = gt_zmon_help-ztrack.
In the internal table gt_zmon_help are over 1000000 entries.
Anyone an Idea how to improve the Performance?
Thank you!

>
Matthias Weisensel wrote:
> We have big Performance Problems with following Statement:
>
>
SELECT * FROM zeedmt_zmon INTO TABLE gt_zmon_help
>   FOR ALL ENTRIES IN gt_zmon_help
>     WHERE
>     status = 'IAI200' AND
>     logdat IN gs_dat AND
>     ztrack = gt_zmon_help-ztrack.
>
> In the internal table gt_zmon_help are over 1000000 entries.
> Anyone an Idea how to improve the Performance?
>
> Thank you!
You can't expect miracles.  With over a million entries in your itab any select is going to take a bit of time. Do you really need all these records in the itab?  How many records is the select bringing back?  I'm assuming that you have got and are using indexes on your ZEEDMT_ZMON table.
In this situation, I'd first of all try to think of another way of running the query and restricting the amount of data, but if this were not possible I'd just run it in the background and accept that it is going to take a long time.

• Problem with While Loop.

Hi guys,
i'm doing a pass exam java question, below is the question criteria.
Write a program that allows a user to enter their mark attained in each unit and displays their grade. After all marks are entered the average mark is displayed.
The main method should:
Prompt the user to enter the number of units taken (check for NumberFormatException)
Write a for loop to repeat for each subject, where each iteration
Prompts the user to enter a mark ( a double) for unit 1, unit 2 etc. This should be in a while loop so if mark entered is less than 0 or greater than 100 the prompt will be repeated.
Pass the mark to a method called getGrade.
Accumulate each mark
Print the average mark to 2 decimal places
Accept the parameter passed from the main method
Determine the grade according to the following scale
The words that i highlighted in bold is the criteria.
As you can see from the above question, i create an array , even though the question does not prompt me to create as what i know from tackling JavaQuestions "if it does not prompt me to add a criteria, it is ok to add it" :)
below is my program code , in which the result i get is the same as the question result. BUT, from the above question it ask me to add a while loop, so if mark entered is less than 0 or greater than 100 the prompt will be repeated.
But instead i use a do loop. :(
so can anyone help me or show me how to create the while loop for mark entered is less than 0 or greater than 100 the prompt will be repeated, from my program code below. cause i want to know whether it possible to have a while loop instead of do loop for the my program and the while loop can work with an array criteria.
thanks
htw.
import javax.swing.*;
import java.text.DecimalFormat;
public class Mark
public static void main (String [] args)
String unitStr;
String markEnterStr;
int validUnit;
double total = 0;
boolean validInput = true;
DecimalFormat fmt = new DecimalFormat("#0.00");
while (validInput)
unitStr = JOptionPane.showInputDialog(null,"Enter number of units: ");
try
validUnit = Integer.parseInt(unitStr);
double[] markArray = new double[validUnit];
validInput = false;
for (int index = 0;index < validUnit; index++)
do
markEnterStr = JOptionPane.showInputDialog("Please enter mark " +(index+1) +":");
markArray[index] = Double.parseDouble(markEnterStr);
while(markArray[index] < 0 || markArray[index] >100);
System.out.println(correctMark);
total = total + markArray[index];
double average = (double)total / validUnit;
System.out.println("Average = " +fmt.format(average));
catch (NumberFormatException e)
if (x < 50)
else if (x < 60)
else if (x < 70)
else if (x < 80)
}

Hope u got it.
markArray[index] = -1;
while(markArray[index] < 0 || markArray[index] >100);
markEnterStr = JOptionPane.showInputDialog("Please enter mark " +(index+1) +":");
markArray[index] = Double.parseDouble(markEnterStr);
}VJ

• Alternative for / Problems with: "For all entries in data_package"

Hi Guys
I doing some ABAP in a Start Rotine in BW and would like to do the following:
select * from /BI0/PMATERIAL into table 0mat
for all entries in DATA_PACKAGE
where material = DATA_PACKAGE-/bic/zmaterial.
But I get the following error:
E:When using the addition "FOR ALL ENTRIES IN itab", the fields "MATERIAL" and "DATA_PACKAGE-/BIC/ZMATERIAL" must have the same type and length. and length.
ZMATERIAL:
- Length: 28
- Type: CHAR - Character String
ZMATERIAL:
- Length: 18
- Type: CHAR - Character String
According to the error message "For all entries" cannot be used in this case since the lengths are not identical, but is there an alternative way to do what I would like to do?
Torben

Hi
one thing you can try like this define one variable in other itab of same type
then loop at the first table and assign it to new field and modify the itab
then use this field with for all entries
Regards
Shiva

• Issue with FOR loop in Nested BEGIN and END terminals

Hi All,
I am trying to fetch row by row using FOR loop on CURSOR.An i am getting Error attached screen shot:
Below is the logic:
Create Procedure TEST1() LANGUAGE SQLSCRIPT AS
BEGIN
AN01 = Select * from AN.View;
AN02 = SELECT DISTINCT F1,F2,F3 from :AN01 GROUP BY F1,F2,F3;
BEGIN
DECLARE CURSOR ITEM_RULE FOR select F1,F2,F3 from :AN02;
FOR V_ITEM_RULE AS ITEM_RULE DO
SELECT * from TABLE1 where F1 = V_ITEM_RULE.F1;
END FOR;
END;
END;
Here i an getting data from AN01..Then finding the Distinct in AN02.
On AN02 i am applying CURSOR...and for each row i wanted to find an entry in TABLE1 and do a calculation further.
-- But when i am using a FOR loop in the Nested BEGIN i am getting below Error.
-- I tried to Activate successful without FOR Loop.
Any Suggestion on the above issue.
Thanks
kalyan

Hi Kalyan,
Why are you looping to make a select that you do not use? What is the target for ITEM_RULE_GDS selection?
Also, like it is currently exposed a JOIN is highly recommended.
Are you just playing around with procedure or you really have a scope to do ?
Regards, Fernando Da Rós

• Help in script logic - problem in FOR loop

Hi Experts,
We are using BPC 7.5 SP08. I have written a FOR loop in script logic default.lgf which is as follows:
*FOR %TIM_MEM%=%TIME_SET%
*XDIM_MEMBERSET TIME =%TIM_MEM%
*WHEN P_ACCT2
*IS "OSDU"
REC(EXPRESSION=[P_ACCT2].[ASSTCAINVURO][P_ACCT2].[COGSUPRVIPSA]/[P_ACCT2].[ASSTUPRVTAQTY],P_ACCT2="COGSUIPSAO")
*ENDWHEN
*COMMIT
*NEXT
As per my requirement, all this members: [ASSTCAINVURO], [COGSUPRVIPSA], [ASSTUPRVTAQTY] exists for months September to next year's August. But in my input schedule, the months are from August to next year's July(which is the company's fiscal year). Consequently the loop runs for month August to next year's July while I need to run the loop 1 month late(i.e. September to next year's August). This was achieved earlier by hard-coding the time members which we cannot afford as this requires to update these hard-coded member IDs every year.
We have also tried using the "NEXT" property of TIME dimension as follows:
*XDIM_MEMBERSET TIME =%TIM_MEM%.NEXT
but %TIM_MEM%.NEXT doesn't get the month in 'NEXT'.
Please suggest if there is any way out to solve this problem.

Hi Appu,
Even if you restrict the scope using the XDIM statement, your script will just run the number of times as per the for loop. Actually, in reality, the same calculation is happening again and again, in your code; since your calculation is not based on the time member.
To use the for loop effectively, you need to incorporate the time member in your calculation.
Please look at the below sample code:
*XDIM_MEMBERSET TIME = %TIME_SET%
*FOR %TIM_MEM%=%TIME_SET%
*WHEN P_ACCT2
*IS "OSDU"
*REC(EXPRESSION=<CALCULATION>,P_ACCT2="COGSUIPSAO")
*ENDWHEN
*NEXT
And in your calculation, you can use statements like
([P_ACCT2].[ASSTCAINVURO],TMVL(1, [TIME].[%TIM_MEM%]))
This will ensure that everytime (as per the for loop), the calculation works on separate set of data.
Hope you got the idea.

• Problem with for all entries in select querry

hi,
Hi,
I am using select queery like this
SELECT  version  COUNT( * )
from ztbi_default_va4
INTO  CORRESPONDING FIELDS OF TABLE   lit_new
FOR ALL ENTRIES IN lit_new1
WHERE network = lit_new1-network GROUP BY version.
this is not working showing error as:
The addition "FOR ALL ENTRIES" excludes all aggregate functions with
the exception of "COUNT( * )" as the single element of the SELECT     clause.
I am using only count(*) ,not using othes like max,min etc,,,,,,,,,
please suggest any missing in syntax,,,,attach relavant code using count(*) with for all entreis
any help appriciated,,,,,

Hi,
Try this -
TYPES: begin of t_data,
version TYPE version,
count    type i,
end of t_data.
DATA: i_data TYPE STANDARD TABLE OF t_data,
wa_data TYPE t_data.
DATA: l_version TYPE version,
l_count TYPE i.
SELECT  version  COUNT( * )
from ztbi_default_va4
INTO  CORRESPONDING FIELDS OF TABLE   lit_new
FOR ALL ENTRIES IN lit_new1
WHERE network = lit_new1-network.
SORT lit_new.
LOOP AT lit_new INTO lwa_new.
IF lwa_new EQ l_version.
l_count = l_count + 1.
ELSE.
wa_data-version = l_version.
wa_data-count = l_count + 1.
APPEND wa_data TO i_data.
CLEAR: wa_data.
CLEAR: l_count.
ENDIF.
l_version = lwa_new-version.
CLEAR: lwa_new.
I hope this will do.
Make any necessary changes.
Regards,
Harsh Bansal

• Help me with for loop please...............

hi guys i m just new bie as you know
i gotta print these things........
from 7 stars to 1 star........
i did it like this but it only produce
in this way,,,,,,
how do we actually padding the space and print it as the example........
help me guys whoever experts in for loops my code is........
class triangle
public static void main (String[] args)
a(7);
public static void a (int num)
for (int j = num ; j > 0 ; j--)
for (int i = 0 ; i < j ; i++)
System.out.print("*");
System.out.println ();
}

You really need a better screen name,
The problem is is that you want to print out a descending number of stars
preceded by a number of spaces . the number of spaces for a line is the number of characters - number of stars so
for (int j = num ; j > 0 ; j--)
HERE print the required spaces!
for (int i = 0 ; i < j ; i++)
System.out.print("*");
System.out.println ();

• So close but need help comparing strings in different subforms with for loop - Livecycle ES

For some reason I was not able to post this in the Livecycle ES forum, even though I've posted there often in the past.
I have created a form that I almost have working and I'm hoping someone can help me.
We have eight billing teams in our company and each team works anywhere from 1 - 4 different clients. The form is used to track, per Billing Rep, the number of items of mail that each billing r5ep works each day. What I'm needing to add at the bottom is a subform that tracks the totals by client. So I'm trying to get the form to loop through all of the existing subforms (and the subforms within them) and compare a cell int he bottom subform to a cell in the other subforms, which are dynamically added, and then total ONLY those items. My script however is not working.
What I have now is:
var repCount = form1.P1._rep.count
var itemCount = form1.P1.rep._ItemSet.count
for (x=0; x<repCount; x++)
for (i=0; i<itemCount; i++)
if(clientName.rawValue == P1.rep[x].ItemSet[i].client.rawValue)
this.rawValue = this.rawValue + P1.rep[x].ItemSet[i].corresp.rawValue;
It seems like this should work but I'm getting the following error:
P1.rep[x] is undefined
So what it looks like is I'm missing is the proper way to reference the objects in these subforms.
The form is here: https://acrobat.com/#d=20gWXZ4sBm4OPV6oO76zSg
If someone could take a look at it I would be so grateful.
Thanks,
Jo

I don't know that anyone else will ever have a similar problem as what I was having, but I figured I would go ahead and post the solution, just in case....
The error I was getting (P1.resolveNode("rep[" + j + "].ItemSet[" + i + "]") is null) was occuring because the variable itemCount needed to be referenced within the repCount For Loop. I also needed to resolve the node for the itemCount, which I wasn't doing.
var repCount = P1._rep.count;
var itemCount = P1.rep._ItemSet.count;   //this part was throwing the error. Needed to use resolveNode...and needed to not declare the variable until inside the first For Loop.
var nTotal = 0;
for (var j=0; j<repCount; j++) {
for (var i=0; i<itemCount; i++)    {
if (P1.resolveNode("rep["+ j +"].ItemSet["+ i +"]").client.rawValue == clientName.rawValue) {
nTotal = nTotal + P1.resolveNode("rep["+ j +"].ItemSet["+ i +"]").corresp.rawValue;
this.rawValue = nTotal;
...which wasn't working because it was trying to reference the count of the ItemSet right up front...but it needed to wait until it got inside the first iteration of the repCount subfields...AND it needed to have resolveNode used.
The corrected code is:
var repCount = P1._rep.count;
this.rawValue = 0;
for (var j=0; j<repCount; j++) {
var itemCount = P1.resolveNode("rep["+j+"]")._ItemSet.count;  //corrected code...node is resolved and variable is declared within the first subform repCount.
for (var i=0; i<itemCount; i++)    {
if (P1.resolveNode("rep["+ j +"].ItemSet["+ i +"]").client.rawValue == clientName.rawValue) {
this.rawValue = this.rawValue + P1.resolveNode("rep["+ j +"].ItemSet["+ i +"]").corresp.rawValue;
...which now works perfectly...and I'm throwing a party to celebrate! LOL
Jo

### Maybe you are looking for

• 2 dvrs or single multi room dvr???

i currently have one DVR set up for multi room \$19.99 and one standardt STB \$4.99.    My wife tapes tons of standard programs and watches them all in the bedroom on the STB (non HD TV there).   This of course limits what i can watch on the good HD DV

• How to return column name in some table?

Hi All, I know :system.cursor_value which returns the value of the current text item in the form. But Is there a way to return the column name and its value in some table? Note: I'm using Oracle DB 10g Thank you

• IOS Mail changes .mhtml extension to .html when opening in another app

Hey there guys, Just noticed this, this morning. Recently, our Backup server admin changed the report sent out by our Microsoft DPM server from PDF to MHTML output. (DPM could *never* format the PDF correctly and, surprise surprise, can format the MH

• Bluetooth Yamaha NX-B02 connection not sustained, how to fix?

The Yamaha NX-B02 bluetooth speaker readily pairs with my 15" Macbook Pro (early 2011) and the speaker is listed as a sound output option after pairing. However, when I select the Yamaha speaker sound output option the connection is only sustained br

• Safari keeps crashing on my ipod touch 4g

Ever since i got my ipod touch apps would crash from time to time. Then there was an update and apps crash more and more. Soon the apps stopped crashing after a few more updates but safari crashes alot. I tried deleting all of the apps in multitaskin