public class Question4 {
public static void main(String[] args) {
int i=128;//求i的分解质因数
String s=i+"=";
A:
for( int j=2;j<i;j++){
int n=i%j;
while(n==0){
i=i/j;
s+=j+"*";
continue A;
}
}
s+=i;
System.out.println(s);
}}
为什么我当程序第二次执行循环的时候会从第一次J前面的值开始相加,而不是从j=2开始呢?

解决方案 »

  1.   


    public class Question4 { 
    public static void main(String[] args) { 
    int i=128;//求i的分解质因数 
    String s=i+"="; 
    int j=2;
    while(j<i){
    if(0==i%j){ 
    i=i/j; 
    s+=j+"*";
    j=1;

    j++;

    s+=i; 
    System.out.println(s); 

      

  2.   


    public class Question4 { 
    public static void main(String[] args) { 
    int i=128;//求i的分解质因数 
    String s=i+"="; 
    int j=2;
    while(j<i){
    if(0==i%j){ 
    i=i/j; 
    s+=j+"*";
    j=1;

    j++;

    s+=i; 
    System.out.println(s); 

      

  3.   

    public class Question4 { 
    public static void main(String[] args) { 
    int i=128;//求i的分解质因数 
    String s=i+"="; for( int j=2;j <i;j++){ if(0==i%j){ 
    i=i/j; 
    s+=j+"*"; 
    j=1;
    continue ; 


    s+=i; 
    System.out.println(s); 

    }
    这样也行
      

  4.   

    continue的时候会自动加变量值,可以自己做实验看看