関数の中のローカル変数を別の関数の中から参照できないのは知っていましたが、関数の中でもif文の中で定義した変数をif文の外から参照しようとするとエラーになるみたいです。また、関数の中で変数を定義する場合は、その値が使われる前に必ず値を入れておかなければ、エラーになります。(エラーとなって、実行できません)

boolean a = true;
void func1()
{
if( a==true)
{
int b = 1;
}
println( b );
}

これはエラー。
FLASH(AS2)とかだと、if文の中を通らなかったときに、undefinedとしてくれるけど、Processingの場合は、ちょっと厳しいみたいです。
要は、絶対undefinedにはならないようにしないといけないみたいです。
また、関数の外で変数を定義するときは関数の名前だけでOKですが、関数の中で定義するときは、同様の理由で、その変数が使われる前に必ず値を入れておかないといけないようです。

つまり、

void func1()
{
int b;
println( b );
}

はもちろんエラーとなります。
また、以下の場合もエラーです。
void func1(){
boolean a = true;
int b;
if( a==true)
{
b = 1;
}
else if(a==false)
{
b = 2;
}
println(b);
}

ただ、else ifじゃなくて、elseにするとエラーは出ません.
void func1(){
boolean a = true;
int b;
if( a==true)
{
b = 1;
}
else
{
b = 2;
}
println(b);
}

以上、if文の中で変数の値を入れる場合について書きましたが、そこまで考えるのは面倒なので、なるべく、最初に初期値も入れてしまいましょう。

以下のような感じで。
void func1()
{
int b=1;
println( b );
}

または、
void func1()
{
int b;
b=1;
println( b );
}



■おまけ

以下のようなことをしても意味はないですが、
定義した変数を参照しないプログラムになっていれば、
エラーは出ないようです。
void func1()
{
int b;
}