我的"如果"只能处理一些错误。我需要更改所以他们检测每个错误并显示我的消息而不是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.");
}
答案 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块中。就像那样,看起来总会被执行。