编译时,我收到错误:"无法访问的语句".我该如何解决这个问题?

use*_*909 0 java methods object

public double Convertir(double Number) {
    Number = nombre;
    while ((Number - 365) >= 0) {
        annee += 1;   //this calculates the number of years    
    }
    return annee;
    double nombreSemaine = Number - (annee * 365);
    while ((nombreSemaine - 7) >= 0) {
        semaine = semaine + 1;
    }//this calculates the number of weeks
    return semaine;
    double nombreJour = Number - (annee * 365) - (semaine * 7);
    nombreJour = jour;
    return jour;
}
Run Code Online (Sandbox Code Playgroud)

使用此代码,我试图将用户编写的数字(天数)转换为它所生成的年数,周数和天数.例如,数字365应返回1年0周0天.

Som*_*ica 5

return annee;返回annee所以在方法中的此表达式之后的任何内容都不会被执行.

也许你可以返回一个Array代替:

public double[] Convertir(double Number) {
    Number = nombre;
    double[] all = new double[3];
    while ((Number - 365) >= 0) {
        annee += 1;   //this calculates the number of years    
    }
    all[0] = annee;
    double nombreSemaine = Number - (annee * 365);
    while ((nombreSemaine - 7) >= 0) {
        semaine = semaine + 1;
    }//this calculates the number of weeks
    all[1] = semaine;
    double nombreJour = Number - (annee * 365) - (semaine * 7);
    nombreJour = jour;
    all[2] = jour;

    return all
}
Run Code Online (Sandbox Code Playgroud)

或类似的东西.一个ArrayList可能会更好......但它是一般的概念.


JoR*_*uss 5

以下代码return annee;不会被执行.

看起来你想要返回3个值.double在这种情况下,您只能返回1个值.

解决方案1(全局变量):

int annee, semaine, jour; //global variables

public void Convertir(int Number) { //I guess number should be an Int too, unless it's possible to pass 567.28 days...
    //Number = nombre; Useless since this is a parameter
    annee = (int)(Number/365);
    semaine = (int)((Number - annee * 365)/7);
    jour = Number - annee * 365 - semaine * 7;
}
Run Code Online (Sandbox Code Playgroud)

解决方案2(返回一个数组):

public int[] Convertir(int Number) { //I guess number should be an Int too, unless it's possible to pass 567.28 days...
    //Number = nombre; Useless since this is a parameter
    int[] anneeSemaineJour = new int[3];
    anneeSemaineJour[0] = (int)(Number/365);
    anneeSemaineJour[1] = (int)((Number - anneeSemaineJour[0] * 365)/7);
    anneeSemaineJour[2] = Number - anneeSemaineJour[0] * 365 - anneeSemaineJour[1] * 7;

    return anneeSemaineJour;
}
Run Code Online (Sandbox Code Playgroud)

然后你会像这样使用它(解决方案2):

int[] resultat = convertir(822); // convertir(nombre) in your case I guess
System.out.println("Annee = " + resultat[0] + " Semaine = " + resultat[1] + " Jour = " + resultat[2]);
Run Code Online (Sandbox Code Playgroud)