2017-03-01 112 views
-1

在這個程序中,我試圖得到以下輸出的情況下,運算符更正,在這裏,我想得到輸出來檢查一個字符串是否是一個有效的算術表達式,然後打印有效&如果沒有(例如。 a +,b +或a + b +或ab = c * d-等等..)所以我在Java中設計了這個代碼,但是我沒有得到輸出,當我嘗試循環檢查問題時,值在循環之外沒有被改變。任何人都可以幫我解決這個問題嗎?任何人都可以幫助我嗎?我沒有得到輸出

代碼:

import java.util.Scanner; 

public class InvalidOperatorCheck { 

    public static void main(String[] args){ 
    int i = 0; 
    boolean flag = false; 

    Scanner scan = new Scanner(System.in); 

    System.out.println("Enter the Expression to test the string"); 
    String expression = scan.next(); 

    while (expression.isEmpty()) { 
     if (i % 2 == 1) { 
      if (expression.equals("+") || expression.equals("-") || expression.equals("/") || expression.equals("*")) 
       flag = false; 
     } 

     if (expression.length() - 1 == i) { 
      if (expression.contentEquals("[a-zA-Z]")) 
       flag = true; 
     } else { 
      flag = false; 
     } 

     i++; 
     i++; 
    } 

    if (flag == false) { 
     System.out.println("\nNot Valid\n"); 
    } else { 
     System.out.println("\nValid\n"); 
    }  
    } 
} 
+1

您創建了一個無限循環,要麼永不運行或從未停止。如果一旦條件成立,或者循環將永不停止,就必須讓您的條件成爲假。目前它很可能永遠不會運行,因爲你的條件是錯誤的,你只進入循環,如果**沒有輸入** –

+0

@ 911DidBush if(!expression.isEmpty()){scan.nextline() – Jelle

+0

@Viral Prajapati檢查你的而條件應該是'while(!expression.isEmpty()){//這裏是你的代碼}'。 –

回答

0

你需要更新你的代碼,這樣,你先在邏輯做所需的編輯。

示例代碼

import java.util.Scanner; 

    public class InvalidOperatorCheck{ 

     public static void main(String[] args){ 
      int i = 0; 
      boolean flag = false; 

      Scanner scan = new Scanner(System.in); 

      System.out.println("Enter the Expression to test the string"); 
      String expression = scan.next(); 

      while (!expression.isEmpty()) { 
       if (i % 2 == 1) { 
        if (expression.equals("+") || expression.equals("-") || expression.equals("/") || expression.equals("*")) 
         flag = false; 
         break; 
       } 

       if (expression.length() - 1 == i) { 
        if (expression.contentEquals("[a-zA-Z]")) 
         flag = true; 
       } else { 
        flag = false; 
        break; 
       } 

       i++; 
       i++; 
      } 

      if (flag == false) { 
       System.out.println("\nNot Valid\n"); 
      } else { 
       System.out.println("\nValid\n"); 
      }  
     } 
    } 
相關問題