Java,使用或使用多个条件

Too*_*ink 0 java while-loop

我有这个声明.当有空格或;作为空格时应该退出char.但是当这些条件中的任何一个为真时它都不会退出循环; 当我使用&&它时效果更好但现在预计(显然)两个条件都是正确的.这仍然没有帮助我.

    while ( !pt.get(locCursor).equals(';') || !pt.get(locCursor).equals(' ')){
        word = word + pt.get(locCursor);
        if (locCursor < pt.size()-1){
            locCursor ++;
        }else{
            break;
        }

    }
Run Code Online (Sandbox Code Playgroud)

Psh*_*emo 6

看看你的病情.如果结果pt.get(locCursor);那么它不是空间所以第二个条件是true使整个条件成立.如果结果是空格,那么它不是,;并且整个条件都是真的.

代替

!egual(';') OR !equal(' ')
Run Code Online (Sandbox Code Playgroud)

使用

!( equal(';') OR equal(' ') ) 
Run Code Online (Sandbox Code Playgroud)

要么

!egual(';') AND !equal(' ')
Run Code Online (Sandbox Code Playgroud)