您好我有以下代碼,用於計算從editText獲取子網掩碼輸入,我在單個if行上執行多個條件。基本上我已經打破了使用.split子網的4個部分,然後保存在數組中。無論如何,這是代碼。我應用多個條件時得到android運行時錯誤,android
@Override
public void onClick(View arg0) {
String strings = String.valueOf(inputIp.getText().toString());
final String parts[] = strings.split("\\.");
String block1 = parts[0];
String block2 = parts[1];
String block3 = parts[2];
String block4 = parts[3];
Double firstblock = Double.parseDouble(block1);
Double secondblock = Double.parseDouble(block2);
Double thirdblock = Double.parseDouble(block3);
Double fourthblock = Double.parseDouble(block4);
String substring = String.valueOf(inputSubnet.getText().toString());
String subPart[] = substring.split("\\.");
String subBlock1 = subPart[0];
String subBlock2 = subPart[1];
String subBlock3 = subPart[2];
String subBlock4 = subPart[3];
Double firstSubBlock = Double.parseDouble(subBlock1);
Double secondSubBlock = Double.parseDouble(subBlock2);
Double thirdSubBlock = Double.parseDouble(subBlock3);
Double fourthSubBlock = Double.parseDouble(subBlock4);
if(firstblock <= 127){
//problem
if((firstSubBlock == 255 || firstSubBlock !=0) && (secondSubBlock ==0 && secondSubBlock !=null) &&(thirdSubBlock== 0 && thirdSubBlock !=null) &&(fourthSubBlock == 0 && fourthSubBlock !=null)){
int rangedisplay = (int) (Math.pow(2, 24)-2);
showClass.setText("A");
rangeDisplay.setText(rangedisplay);
}else{
Toast.makeText(getApplicationContext(), "Please enter a valid subnet mask !!", Toast.LENGTH_SHORT).show();
}
}else if(firstblock <=191){
if((firstSubBlock == 255) && (secondSubBlock==255) &&(thirdSubBlock== null) &&(fourthSubBlock == null)){
int rangedisplay = (int) (Math.pow(2, 16)-2);
showClass.setText("B");
rangeDisplay.setText(rangedisplay);
}else{
Toast.makeText(getApplicationContext(), "Please enter a valid subnet mask !!", Toast.LENGTH_SHORT).show();
}
}else if(firstblock <=223){
if((firstSubBlock == 255) && (secondSubBlock==255) &&(thirdSubBlock==255) &&(fourthSubBlock == null)){
int rangedisplay = (int) (Math.pow(2, 8)-2);
showClass.setText("C");
rangeDisplay.setText(rangedisplay);
}else
{
Toast.makeText(getApplicationContext(), "Please enter a valid subnet mask !!", Toast.LENGTH_SHORT).show();
}
}else{
Toast.makeText(getApplicationContext(), "Please enter a valid Ip Address !!", Toast.LENGTH_SHORT).show();
}
}
在下面的行我評論「問題」我傳遞了多個條件,即使我輸入了確切的真實條件。我得到運行時錯誤或吐司消息說「輸入一個有效的子網掩碼!!」這是不對的,因爲我已經輸入了所有應該執行if塊的條件。非常感謝您的參與。任何建議,將不勝感激,因爲這是我的大學任務,我接近最後期限。再一次感謝你。