任何人都可以帮助我吗?我没有得到输出
问题描述:
在这个程序中,我试图得到以下输出的情况下,运算符更正,在这里,我想得到输出来检查一个字符串是否是一个有效的算术表达式,然后打印有效&如果没有(例如。 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");
}
}
}
答
你需要更新你的代码,这样,你先在逻辑做所需的编辑。
示例代码
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");
}
}
}
您创建了一个无限循环,要么永不运行或从未停止。如果一旦条件成立,或者循环将永不停止,就必须让您的条件成为假。目前它很可能永远不会运行,因为你的条件是错误的,你只进入循环,如果**没有输入** –
@ 911DidBush if(!expression.isEmpty()){scan.nextline() – Jelle
@Viral Prajapati检查你的而条件应该是'while(!expression.isEmpty()){//这里是你的代码}'。 –