如果不能正常工作

时间:2015-10-01 19:29:34

标签: java if-statement cmd detect

我的"如果"只能处理一些错误。我需要更改所以他们检测每个错误并显示我的消息而不是cmd错误。当我在cmd中尝试程序时,只检测到像f这样的字母我想要除了我写的那些字母之外的每个字母it.EDIT:是的,这是一个重量转换器,我添加了你们告诉我的东西,但程序仍然只检测到一些错误

public class Convertisseur1 {
public static void main(String[] args) {
String valeurInitial;
String valeurPoid;
String valeurDesire;
String valeurInitial2;
String valeurInitial3;

//seperation des string 

valeurInitial = (args[0]); //pour le nombre
valeurInitial2 = (args[0]); // pour la valeur initiale du poid(kg.g.t.lb)
valeurDesire = (args[1]); //pour la valeur desiré

//seperation du nombre de sa valeur
valeurInitial = valeurInitial.replace("kg",""); 
valeurInitial = valeurInitial.replace("g","");      
valeurInitial = valeurInitial.replace("t","");      
valeurInitial = valeurInitial.replace("lb","");     
double valeurDouble = Double.parseDouble(valeurInitial);
valeurInitial2 = valeurInitial2.replaceAll("[^a-z]","");
//System.out.println(valeurInitial2);
//System.out.println(valeurDesire);

if(!valeurDesire.equals("kg")&&!valeurDesire.equals("g")&&!valeurDesire.equals("t")&&!valeurDesire.equals("lb")){
    System.out.println("L'unite de mesure " + valeurDesire + " n'est pas valide.");
}else
    if(!valeurInitial2.equals("kg")&&!valeurInitial2.equals("lb")&&!valeurInitial2.equals("t")&&!valeurInitial2.equals("g")){
        System.out.println("L'unite de mesure " + valeurInitial2 + " n'est pas valide.");

        }
         if(valeurInitial2.equals("kg") &&valeurDesire.equals("g")){
                valeurDouble = (valeurDouble*1000); 
                System.out.println("La conversion finale : " + valeurDouble + "g");
            }else if(valeurInitial2.equals ("kg")&&valeurDesire.equals ("lb")){
                valeurDouble = (valeurDouble*2.2046226);
                System.out.println("La conversion finale : " + valeurDouble + "lb");
            }else if(valeurInitial2.equals("kg")&&valeurDesire.equals("t")){
                valeurDouble = (valeurDouble*0.001);
                System.out.println("La conversion finale : " + valeurDouble + "t");
            }else if(valeurInitial2.equals("lb")&&valeurDesire.equals("kg")){
                valeurDouble = (valeurDouble/2.2046226);
                System.out.println("La conversion finale : " + valeurDouble + "kg");
            }else if(valeurInitial2.equals("lb")&&valeurDesire.equals("g")){
                valeurDouble = (valeurDouble/0.00220462);
                System.out.println("La conversion finale : " + valeurDouble + "g");
            }else if(valeurInitial2.equals("lb")&&valeurDesire.equals("t")){
                valeurDouble = (valeurDouble*0.000453592);
                System.out.println("La conversion finale : " + valeurDouble + "t");
            }else if(valeurInitial2.equals("g")&&valeurDesire.equals("t")){
                valeurDouble = (valeurDouble/1000000);
                System.out.println("La conversion finale : " + valeurDouble + "t");
            }else if(valeurInitial2.equals("g")&&valeurDesire.equals("lb")){
                valeurDouble = (valeurDouble*0.00220462);
                System.out.println("La conversion finale : " + valeurDouble + "lb");
            }else if(valeurInitial2.equals("g")&&valeurDesire.equals("kg")){
                valeurDouble = (valeurDouble/1000);
                System.out.println("La conversion finale : " + valeurDouble + "kg");
            }else if(valeurInitial2.equals("t")&&valeurDesire.equals("kg")){
                valeurDouble = (valeurDouble/0.001);
                System.out.println("La conversion finale : " + valeurDouble + "kg");
            }else if(valeurInitial2.equals("t")&&valeurDesire.equals("lb")){
                valeurDouble = (valeurDouble/0.000453592);
                System.out.println("La conversion finale : " + valeurDouble + "lb");
            }else if(valeurInitial2.equals("t")&&valeurDesire.equals("g")){
                valeurDouble = (valeurDouble*1000000);
                System.out.println("La conversion finale : " + valeurDouble + "g");
            }


}

}

重要部分

if(!valeurInitial2.equals("kg")&&!valeurInitial2.equals("lb")&&!valeurInitial2.equals("t")&&!valeurInitial2.equals("g")){
        System.out.println("L'unite de mesure " + valeurInitial2 + " n'est pas valide.");

        }

3 个答案:

答案 0 :(得分:0)

您应该使用Strings来比较if(valeurInitial2!="kg"||valeurInitial2!="lb")

这部分:

if(!valeurInitial2.equals("kg") || !valeurInitial2.equals("lb"))

成为:

&&

此外,如果您的unitésDeMesure必须为“kg”或“lb”,则您必须使用||运算符来测试您的情况。

想象一下用户输入“lb”并知道当你使用is "lb" not == to "kg" : true并且第一次测试是真的时,我们无论输入什么都会输入:

&&

即使用户输入“lb”

,程序也会假定用户输入的内容无效

让我们现在尝试使用&&,并且知道true,如果第一个是is "lb" not == to "kg" : true is "lb" not == to "lb" : false

,我们必须继续
if

我们不会输入{{1}}段

答案 1 :(得分:0)

使用String.equals(string2Check)比较您的字符串,所以在您的情况下,它看起来像......

if (!valeurInitial2.equals("kg")){}

答案 2 :(得分:0)

您需要使用.equals()进行字符串比较。你的逻辑也出现了。我想你想要&&运算符而不是||在第一个if / else块中。就像那样,看起来总会被执行。