Why is it that the following code:
class swi
{
public static void main(String[] args)
{
int a=98;
switch(a)
{
default:{ System.out.println("default");continue;}
case 'b':{ System.out.println(a); continue;}
case 'a':{ System.out.println(a);}
}
System.out.println("Switch Completed");
}
}
Gives the error:
continue outside of loop
Falling through is the standard behavior for a switch statement and so, consequently, using continue in a switch statement does not make sense. The continue statement is only used in for/while/do..while loops.
Based on my understanding of your intentions, you probably want to write:
System.out.println("default");
if ( (a == 'a') || (a == 'b') ){
System.out.println(a);
}
I would also suggest that you place the default condition at the very end.
EDIT:
It is not entirely true that continue statements cannot be used inside switch statements. A (ideally labeled) continue statement is entirely valid. For example:
public class Main {
public static void main(String[] args) {
loop:
for (int i=0; i<10; i++) {
switch (i) {
case 1:
case 3:
case 5:
case 7:
case 9:
continue loop;
}
System.out.println(i);
}
}
}
This will produce the following output:
0
2
4
6
8
The continue
-Statement may be used in loops and not in switch. What you probably want is a break
.
Because you have a continue
outside of a loop. continue
is for jumping back to the beginning of a loop, but you don't have any loop in that code. What you want for breaking out of a switch
case block is the keyword break
(see below).
There's also no need to put every case block within braces (unless you want locally-scoped variables within them).
So somethinga bit like this would be more standard:
class swi22
{
public static void main(String[] args)
{
int a=98;
switch(a)
{
default:
System.out.println("default");
break;
case 'b':
System.out.println(a);
break;
case 'a':
System.out.println(a);
break;
}
System.out.println("Switch Completed");
}
}
There's also a school of thought that says the default
condition should always be at the end. This is not a requirement, just a fairly widely-used convention.
continue
inside switch??!!! only break
can be kept inside switch.!
ur code should be,
class swi22
{
public static void main(String[] args)
{
int a=98;
switch(a)
{
default:{ System.out.println("default");break;}
case 'b':{ System.out.println(a); break;}
case 'a':{ System.out.println(a);}
}
System.out.println("Switch Completed");
}
}
Shouldn't you use break
instead of continue
?
You are using continue
where you should be using break
continue
simply moves directly to the next iteration of the loop.
break
is used to break out of loops and switches.
Use break;
instead of continue;
Continue:
for(x = 0; x < 10; x++)
{
if(x == 3)
continue;
else
DoIterativeWork();
}
Switch:
switch(a)
{
default:{ System.out.println("default"); break;}
case 'b':{ System.out.println(a); break;}
case 'a':{ System.out.println(a);}
}