2017-03-01 115 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"); 
      }  
     } 
    } 
相关问题