أنا بعمل هنا scanner and parser
عبارة عن انى بدخل رقم ثم إحدى العلامات الآتية (+ و-و*و\) ثم رقم آخر
لو حصل أنى دخلت علامة مخالفة
عاوز ال parser يعطينى رسالة خطا
انا مش عارف اظبط االجزئية الخاصة ب ال parser
ده كود ال scanner
public class Switch {
char[] oper = {'+', '-', '*', '/'};
public Switch() {
Scanner s = new Scanner(System.in);
System.out.println("Enter an operator:");
String input = s.next();
for (int i = 0; i < oper.length; ++i) {
oper = input.charAt(0);
}
System.out.println("Enter a number:");
input = s.next();
int num1 = Integer.parseInt(input);
System.out.println("Enter anthor number:");
input = s.next();
int num2 = Integer.parseInt(input);
System.out.println("The result is");
for (int i = 0; i < oper.length; ++i) {
switch (oper) {
case '+':
int result = num1 + num2;
System.out.println(result);
break;
case '-':
result = num1 - num2;
System.out.println(result);
break;
case '*':
result = num1 * num2;
System.out.println(result);
break;
}
}
}
public static void main(String[] args) {
new Switch();
}
}
import java.util.Scanner;
و ده كود ال parser
class ParserTest {
Switch s = new Switch();
char operSympole;
public ParserTest() {
for (int i = 0; i < s.oper.length; ++i) {
if (operSympole != s.oper) {
System.out.println("Error in language");
}
}
}
}شكرا
