eclipse - java中char数组的判断被直接跳过?
ringa_lee
ringa_lee 2017-04-18 10:16:01
0
1
326
import java.util.Scanner;

public class Main {
    
    static char[] s=new char[100];
    static int i;
    static int SIGN;
    public static void E(){
        if(SIGN==0){
            T();
            E1();
            
        }
    }
    
    public static void E1(){
        if(SIGN==0){
            if(s[i]=='+'||s[i]=='-'){
                ++i;
                T();
                E1();
            }
            else if(s[i]!='#'&&s[i]!=')'&&s[i]!=';'&&s[i]!='*'&&s[i]!='/'){
                System.out.println("语句有误!");
                SIGN=1;
            }
        }
    }
    
    public static void T(){
        if(SIGN==0){
            F();
            T1();
        }
    }
    
    public static void T1(){
        if(SIGN==0){
            if(s[i]=='*'||s[i]=='/'){
                ++i;
                F();
                T1();
            }
            else if(s[i]!='#'&& s[i]!=')'&&s[i]!='+'&&s[i]!='-'&&s[i]!=';'){
                System.out.println("语句有误!");
                SIGN=1;
            }
        }
    }
    
    public static void F(){
        if(SIGN==0){
            if(s[i]=='b'){
                ++i;
                E();
             if(s[i]=='('){
                ++i;
                E();
                if(s[i]==')'){
                    ++i;
                    E();
                    if(s[i]==';'){
                        ++i;
                        E();
                    if(s[i]=='e'){
                        ++i;
                        E();
                    }
                    else if(s[i]=='#'){
                        System.out.println("语句有误!");
                        SIGN=1;
                        ++i;
                    
                    }
                    }
             }
            }
            }
        
            else if(s[i]=='i')
                ++i;
            else{
                System.out.println("语句有误!");
                SIGN=1;
            }
        
        
    }
    }
    
    
    
    
    
    
    public static void main(String[] args) {
        System.out.println("请输入一个语句,以#号结束语句(直接输入#号退出)");
        while(true){
            SIGN=0;
            i=0;
            Scanner sc=new Scanner(System.in);
            String c=sc.next();
            char s[]=c.toCharArray();
            System.out.println(s);
            for(int i=0;i<s.length;i++){
            if(s[0]=='#')
                break;
            E();
            if(s[i]=='#')
                System.out.println("正确语句!");
            }
            System.out.println("请输入一个语句,以#号结束语句");
        }
        }
    }

输入bi=i+i*(i/i-i);i=i+i;e#测试
debug发现在判断s[0]的时候直接就跳过了,这是为什么呢?

ringa_lee
ringa_lee

ringa_lee

reply all(1)
左手右手慢动作

Try initializing SIGN to 0

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!