• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Error while Running Code

 
Gowher Naik
Ranch Hand
Posts: 643
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
int counter = 0;
l1:
for (int i=0; i<10; i++) {
l2:
int j = 0; //compile error
while (j++ < 10) {
if (j > i) break l2;
if (j == i) {
counter++;
continue l1;
}
}
}
System.out.println(counter);
when i try to run above code it gives error as follows
"not a statement int j = 0;"
i am not able to figure out why.

thanks
 
Barry Gaunt
Ranch Hand
Posts: 7729
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Your topic says "Running the code", do you mean that - not Compiling the code?

This code (which should be enclosed in tags) is incomplete.
Is this all the code? No enclosing class? If you need to know what a Java program looks like, then I can transfer this topic over to our Beginners' Forum if you want.
[ July 22, 2006: Message edited by: Barry Gaunt ]
 
Gowher Naik
Ranch Hand
Posts: 643
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
ok here is complete code

public class Q275d {
public static void main(String[] args) {
int counter = 0;
l1:
for (int i=0; i<10; i++) {
l2:
int j = 0;//compile time error
while (j++ < 10) {
if (j > i) break l2;
if (j == i) {
counter++;
continue l1;
}
}
}
System.out.println(counter);

}
}
There is compile time error as commented above saying
"not a statement int j = 0;"

i cant figure out why.

thanks
 
Neelesh Bodas
Ranch Hand
Posts: 107
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Indenting the code usually reveals such problems


Observe that the label l2 doesnot "label" any for or while loop. Probably what you meant was :



Now your code should compile fine.
[ July 22, 2006: Message edited by: Neelesh Bodas ]
 
wise owen
Ranch Hand
Posts: 2023
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Note the label does not have to be on the loop statement but does need to be on a statement, such as an if-else statement, that contains the break statement.

break Statement & Statement Labels
 
Gowher Naik
Ranch Hand
Posts: 643
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
hi Neelesh
does it mean that u cant insert any code between label and loop statement.
or in other words it means after label there must be loop statement only.

is it so?
 
Neelesh Bodas
Ranch Hand
Posts: 107
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Labels should be on the statement/construct that contains break or a continue statement. These include loops, if-else and switch statements.
 
Barry Gaunt
Ranch Hand
Posts: 7729
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
It is also possible to write the following:

[ July 22, 2006: Message edited by: Barry Gaunt ]
 
Neelesh Bodas
Ranch Hand
Posts: 107
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Interesting. I didn't know that. Thanks Barry.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic