Java 运营商<;参数类型布尔值int未定义

Java 运营商<;参数类型布尔值int未定义,java,processing,Java,Processing,我是新的处理,我有这个问题。我一直收到下面代码粗体部分的错误消息。我的语法错了吗 void block(int x, int y, int s, color tinto) { fill(tinto); for (int i = 0; i < 3; i++) { triple(x, y+i*s, s, tinto); } if (0 < i < 3 && 6 < i < 9) { // HERE

我是新的处理,我有这个问题。我一直收到下面代码粗体部分的错误消息。我的语法错了吗

void block(int x, int y, int s, color tinto) {
    fill(tinto);
    for (int i = 0; i < 3; i++) {
        triple(x, y+i*s, s, tinto);
    }
    if (0 < i < 3 && 6 < i < 9) {  // HERE
        tinto = 255;
    }
    else {
        tinto = tinto - 200;
    }
}
void块(整数x、整数y、整数s、彩色tinto){
填充(tinto);
对于(int i=0;i<3;i++){
三重(x,y+i*s,s,tinto);
}
如果(0
这不是有效的java表达式。尝试:

if (0<i && i<3 && 6<i && i<9){

if(0在Java中,要检查变量是否在某个范围内,必须将语句分成两部分,如下所示:

if (0 < i && i < 3 && 6 < i && i < 9){

}
if(0
然而,这个特定的代码永远不会是真的,因为您要求它在两个不同的范围内。也许您想检查其中一个范围

if (0 < i && i < 3 || 6 < i && i < 9){

}
if(0

请注意| |或运算符而不是&&和运算符。

语法无效,我认为您的表达式无论如何都是错误的。您说的
I
必须在一个范围内和另一个范围内。我想您的意思是,它可能在一个或另一个范围之间

有效语法示例:将
0
替换为
i>0&&i<3

试试这个:

if ( (i > 0 && i < 3) || (i > 6 && i < 9) )

此代码段存在两个不同的问题。首先,您在for循环内部的“int”中定义了“i”变量。一旦退出该for循环,“i”的此实例将不再定义,因此下面的if语句不引用该实例。若要克服此问题,请在for循环之前定义“i”

int i;
for ( i=0; i<3; I++ ) {
    ...
}
if ( i ...
inti;

对于(i=0;i)您收到了哪些错误消息?
if(0您必须向我们解释您正在尝试执行的操作。即使Java有一个范围运算符,就像一些人假设您正在尝试执行的那样,
0这甚至没有意义,因为
i
不能同时介于0和3之间以及6和9之间。相关:Java链式不等式如果(5)我的表达式肯定是错的……我尝试了VAILD语法,现在程序运行了,但是它没有改变中间的3x3块的颜色。@ KAIROSENO我们不能诊断你的程序,因为我们对它一无所知。如果你仍然有问题,在这个网站上发布一个问题,所有的相关代码都需要。如果回答了您当前的问题,请单击我的答案左侧的复选标记将其标记为“已接受”。
int i;
for ( i=0; i<3; I++ ) {
    ...
}
if ( i ...
if ( 0 < i && i < 3 ...