Yöntem olarak adlandırılan yöntemim, çay kaşığı parçamı, sıfıra eşit olduğu için durması gerektiğinde iki kez tekrar edecektir. X, 1 fincan ve 1 çay kaşığı eşit olmalıdır, ancak 49 yerine 1 bardak ve 1 çay kaşığı 1 çay kaşığı olsun. X'in sıfıra eşit olduğu zaman neden iki kez tekrarlandığını anlamıyorum. Lütfen yardım et, sadece Java öğreniyorum.Durumum yanlış olsa bile, Yöntemim neden yineleniyor?
import java.lang.Math;
public class Third{
double teaspoon = 1;
double tablespoon = 3;
double cup = 48;
double quarter = 12;
double third = 16;
double half = 24;
public void Method(double x){
double[] measurement = new double[6];
measurement[0] = 0;
measurement[1] = 0;
measurement[2] = 0;
measurement[3] = 0;
measurement[4] = 0;
measurement[5] = 0;
while(x>0){
if(x>= cup){
measurement[5] = Math.floor(x/cup);
System.out.println(measurement[5] + "CUPS");
x = x-(cup*measurement[5]);
System.out.println(x +"@ cups");
Method(x);
}
else if(x>= half){
if (x%16==0) {
measurement[3] = Math.floor(x/third);
System.out.println(measurement[3] + "Third");
x = x-(third*measurement[3]);
System.out.println(x+"@ third");
Method(x);
}
else if(x%12==0){
measurement[2] = Math.floor(x/quarter);
System.out.println(measurement[2] + "/4 QUARTER");
x = x-(quarter*measurement[2]);
System.out.println(x+"@quarter");
Method(x);
}
else{
measurement[4] = Math.floor(x/half);
System.out.println(measurement[4] + "/2 HALF");
x = x-(half*measurement[4]);
System.out.println(x+ "@half");
Method(x);
}
}
else if(x>= third){
if(x%12==0){
measurement[2] = Math.floor(x/quarter);
System.out.println(measurement[2] + "/4 QUARTER");
x = x-(quarter*measurement[2]);
System.out.println(x+"@quarter");
Method(x);
}
else{
measurement[3] = Math.floor(x/third);
System.out.println(measurement[3] + "/3 Third");
x = x-(third*measurement[3]);
System.out.println(x+"@ third");
Method(x);
}
}
else if(x>= quarter){
measurement[2] = Math.floor(x/quarter);
System.out.println(measurement[2] + "/4 QUARTER");
x = x-(quarter*measurement[2]);
System.out.println(x+"@quarter");
Method(x);
}
else if(x>= tablespoon){
measurement[1] = Math.floor(x/tablespoon);
System.out.println(measurement[1] + "Tablespoon");
x = x-(tablespoon*measurement[1]);
System.out.println(x+"@TABLE");
Method(x);
}
else if(x== teaspoon){
System.out.println(x+ "Teaspoon");
x = x-1;
}
else if(x>= teaspoon){
if(x==1){
System.out.println(x);
x = 0;
}
else{
measurement[0] = Math.floor(x/teaspoon);
System.out.println(measurement[0] + "TEAS..");
x = x-(teaspoon*measurement[0]);
}
}
else{
measurement[0] =(x/teaspoon);
System.out.println(measurement[0] + "TEAS");
x = x-(teaspoon*measurement[0]);
System.out.println(x+"@ TEEEEE");
x= 0;
}
}
}
}