首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

For循环跳出有关问题

2012-09-16 
For循环跳出问题?Java codeString[] columns [NAME,CLASS_ID]String[] columnsType[VARCHAR2,INT]sql

For循环跳出问题?

Java code
        String[] columns = [NAME,CLASS_ID];        String[] columnsType=[VARCHAR2,INT];                        sqlEndbBuffer.append("create or replace table "+tableN+"( ");                labela:        for(int i=0;i<columns.length;i++){                        sqlEndbBuffer.append(columns[i]+" ");                        for(int j=0;j<columnsType.length;j++){                                sqlEndbBuffer.append(columnsType[j]);                break labela;            }            if (i == columnsType.length - 1) {                sqlEndbBuffer.append("");            } else {                sqlEndbBuffer.append(",");            }        }                sqlEndbBuffer.append(" )");                System.out.println("New SQL==="+sqlEndbBuffer.toString());


我要输出下面的语句,
New SQL===create or replace table dffdfdf( NAME VARCHAR2 ,CLASS_ID INT)
代码有点问题,帮看看,那个break好些没起作用?谢谢

[解决办法]
break只能跳出当前循环吧,跳出后最外层的for循环还有继续的。
[解决办法]
Java code
        String[] columns = [NAME,CLASS_ID];        String[] columnsType=[VARCHAR2,INT];                        sqlEndbBuffer.append("create or replace table "+tableN+"( ");                labela:        for(int i=0;i<columns.length;i++){                        sqlEndbBuffer.append(columns[i]+" "+columnsType[i]);                                   if (i == columns.length - 1) {                sqlEndbBuffer.append("");            } else {                sqlEndbBuffer.append(",");            }        }                sqlEndbBuffer.append(" )");                System.out.println("New SQL==="+sqlEndbBuffer.toString());
[解决办法]
int j=0;
labela:
for(int i=0;i<columns.length;i++){

sqlEndbBuffer.append(columns[i]+" ");
labelb:
for(int a=j;a<columnsType.length;a++){
sqlEndbBuffer.append(columnsType[a]);
j++;
break labelb;
}
if (i == columnsType.length - 1) {
sqlEndbBuffer.append("");
} else {
sqlEndbBuffer.append(",");
}
}
[解决办法]
Java code
 String[] columns = [NAME,CLASS_ID];        String[] columnsType=[VARCHAR2,INT];                        sqlEndbBuffer.append("create or replace table "+tableN+"( ");                for(int i=0;i<columns.length;i++){                        sqlEndbBuffer.append(columns[i]+" ");                        for(int j=0;j<columnsType.length;j++){                                sqlEndbBuffer.append(columnsType[j]);                break;            }            break;            if (i == columnsType.length - 1) {                sqlEndbBuffer.append("");            } else {                sqlEndbBuffer.append(",");            }        }                sqlEndbBuffer.append(" )");                System.out.println("New SQL==="+sqlEndbBuffer.toString());
[解决办法]
break 只能跳出最近一个代码循环块

彻底退出 只能用return

所以 楼主可以用一些标志
------解决方案--------------------


break 结束循环
continue 跳过本次循环 继续下次循环
你break加的不对 
外层循环 开始 运行 sqlEndbBuffer.append(columns[i]+" ");
 内层循环 开始 运行 sqlEndbBuffer.append(columnsType[j]);
 然后break 标签 --->直接结束外层循环
逻辑不对 内层循环永远从0开始....

热点排行