java中 if else语句

来源:百度知道 编辑:UC知道 时间:2024/05/24 02:26:49
//编写程序 输出键盘输入的内容 当键盘输入的是“Bye”时程序退出
public class TestStringBuffer1 {

/**
* @param args
*/
public static void main(String[] args) {
int a = 0;
byte [] b = new byte[1024];
int pos = 0;
String strInfo = null;
try
{
a = System.in.read();
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
if(a=='\r'||a=='\n')
strInfo = new String(b,0,pos);
if(strInfo.equals("bye"))
return;
else
System.out.print(strInfo);
else 这里有错 不知道为什么
b[pos++] = (byte)a;

}
}

if(a=='\r'||a=='\n')
strInfo = new String(b,0,pos);
if(strInfo.equals("bye"))
return;
else
System.out.print(strInfo);
else
b[pos++] = (byte)a;

整个if结构不对,应该这样

if(a=='\r'||a=='\n'){
strInfo = new String(b,0,pos);
}else{
if(strInfo.equals("bye"))
return;
else{
System.out.print(strInfo);
}

b[pos++] = (byte)a;
}

建议你以后写IF语句时,不管是if还是else 不管是一条语句还是多条都用大括号括起来,这样清楚明白。

条件选择结构的语法
if(条件)
{
条件符合所执行的程序
}

if(条件)
{
条件符合所执行的程序
}
else if(条件的第二个区间)
{
}
else
{
}

你仔细看看你的两个if,应该是这里出错了。

你的那几个if else里第一else对应的它前一个if,但是最后一个else也会向前找if,而且找到的跟前一个else找到的if是同一个,所以会报错,你应该加一个大括号来帮助它找更前面的if
public class TestStringBuffer1 {

/**
* @param args
*/