社区
Java SE
帖子详情
小测试,没有什么意义,只是无聊.
axman
博客专家认证
2008-09-19 01:51:08
java中如何处理下面的逻辑:
if(条件1){
语句1
语句2
语句3
}
if(条件2){
语句1
语句2
语句3
}
if(条件3){
语句1
语句2
语句3
}
现在把
语句1
语句2
语句3
写到一个地方,让上面的条件直接goto到那里.
...全文
181
15
打赏
收藏
小测试,没有什么意义,只是无聊.
java中如何处理下面的逻辑: if(条件1){ 语句1 语句2 语句3 } if(条件2){ 语句1 语句2 语句3 } if(条件3){ 语句1 语句2 语句3 } 现在把 语句1 语句2 语句3 写到一个地方,让上面的条件直接goto到那里.
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ZangXT
2008-09-19
打赏
举报
回复
我要再认真学学,好好理解.
axman
2008-09-19
打赏
举报
回复
[Quote=引用 11 楼 ZangXT 的回复:]
引用 8 楼 axman 的回复:
这个问题其实真正编码的时候经常用到.就是把很多重复操作提取为了一个方法.
但是提取方法如果用到很就是,就要把变量一个一个传过去,过一会发现又少传了一个变量,又回过头来重新给方法加参数.
就是说外部就是如果很多,就要定义很多参数,比如关闭rs,stmt,conn,就要把这三个变量传给提取的共用的方法.
每次if(ccc) close(rs,stmt,conn);如果参数很多和多次写语句差不多了.
其实我们都知道jav…
[/Quote]
是在循环之前啊,但break到那个标号就是跳出了循环.
public static void main(String[] args) throws Exception{
label1:
do{
if(1==1) break label1;
System.out.println(111);
}while(false);
System.out.println(222);
}
axman
2008-09-19
打赏
举报
回复
都已经说了,如果没有太多的变量,可以提取为方法.但如果要操作太多的变量,就要把这些方法都作为参数传过去,有时要反复修改参数的个数.
如果在原来的地方直接操作就不要需要传参数.
比如:
public static void main(String[] args) throws Exception{
if(1==1){跳过System.out.println(111),直接操作System.out.println(222);}
System.out.println(111);
System.out.println(222);
}
改成:
public static void main(String[] args) throws Exception{
label1:
do{
if(1==1) break label1;
System.out.println(111);
}while(false);
System.out.println(222);
}
就很方便地跳过下面的操作.
ZangXT
2008-09-19
打赏
举报
回复
[Quote=引用 8 楼 axman 的回复:]
这个问题其实真正编码的时候经常用到.就是把很多重复操作提取为了一个方法.
但是提取方法如果用到很就是,就要把变量一个一个传过去,过一会发现又少传了一个变量,又回过头来重新给方法加参数.
就是说外部就是如果很多,就要定义很多参数,比如关闭rs,stmt,conn,就要把这三个变量传给提取的共用的方法.
每次if(ccc) close(rs,stmt,conn);如果参数很多和多次写语句差不多了.
其实我们都知道java可以break到一个label,但那要…
[/Quote]
我考虑过类似的方法,不过java的标号只允许在循环之前吧.
良言相告
2008-09-19
打赏
举报
回复
代码重构,提取公用方法不就得了
chaowendao
2008-09-19
打赏
举报
回复
哎,复杂问题简单化哦!
axman
2008-09-19
打赏
举报
回复
这个问题其实真正编码的时候经常用到.就是把很多重复操作提取为了一个方法.
但是提取方法如果用到很就是,就要把变量一个一个传过去,过一会发现又少传了一个变量,又回过头来重新给方法加参数.
就是说外部就是如果很多,就要定义很多参数,比如关闭rs,stmt,conn,就要把这三个变量传给提取的共用的方法.
每次if(ccc) close(rs,stmt,conn);如果参数很多和多次写语句差不多了.
其实我们都知道java可以break到一个label,但那要在循环中,可是我们这样的逻辑不在循环中如何break呢?
赵本山大叔说:"没有困难创造困难也要上".本着这个精神,我们就要造循环.但造的这个循环只是循环的架子,实际上没有循环:
for(int i=0;i<1;i++){
if(t1) break label1;
........;
if(t2) break label1;
........;
}
label1:
stmt1;
stmt2;
stmt3;
stmt4;
简单说你只要做一个一次循环就达到了goto的目的.
do{
if(t1) break label1;
........;
if(t2) break label1;
........;
}while(false);
或者
while(true){
if(t1) break label1;
........;
if(t2) break label1;
........;
break;//最后加一个break来保证只循环一次.
}
axman
2008-09-19
打赏
举报
回复
你的意思是对的.但上面说了不能提取成函数,只允许用流程控制.
if (条件1 || 条件2 || 条件3){
语句1
语句2
语句3
}
是错误的,因为条件中还要执行其它语句.
比如建立一个连结.
Connection conn = getConnection();
然后我做具体的几步操作.
第一步条件不满足,则直接执行关闭连结,下面的就不用做了.
如果满足,做第二步,如果条件不满足,直接关闭连结就不做第三步了.
if (条件1 || 条件2 || 条件3)要把三步都做了才能用||.没有达到goto的作用,goto是直接跳过下面的操作.
nuskwill
2008-09-19
打赏
举报
回复
你把语句1,2,3写到一个函数里,再在对应条件下调用这个函数就是了.是这个意思吗?
justinavril
2008-09-19
打赏
举报
回复
Why????
if (条件1 || 条件2 || 条件3){
语句1
语句2
语句3
}
Maybe different things happen in different conditions...
axman
2008-09-19
打赏
举报
回复
简单说实现这样的功能:
if(t1) goto labelx;
其它语句
if(t2) goto labelx;
其它语句
if(t3) goto labelx;
labelx:
stmt1;
stmt2;
stmt3;
stmt4;
不要提取成方法,用流程控制
hahaso
2008-09-19
打赏
举报
回复
貌似楼主是说将3个重复的块提取出来变成
here:
function 1;
function 2;
function 3;
if(a){
goto here;
}
if(b){
goto here;
}
if(c){
goto here;
}
liuqianqian
2008-09-19
打赏
举报
回复
到哪里呀!楼主能不能说清楚啊!
hunzaidalian
2008-09-19
打赏
举报
回复
么意思?
我认为做软件
测试
好
无聊
,每天都是点点点,毫无价值。
我认为做
测试
好
无聊
,每天都是点点点,毫无价值。
做了大半年的软件
测试
,感觉我在浪费时间···
岗位都是不着边的,因为做的都是功能
测试
,来了这么久,没接触过技术性的东西,都是开发做好了然后把功能验证一遍,什么代码,性能,压力
测试
都没接触过,就连
测试
用例都没怎么写!没事的时候就玩手机,比如现在,...
软件
测试
技术之回归
测试
的作用和
意义
选择性–选择性回归
测试
是一种回归
测试
,
测试
人员从先前运行的
测试
套件和
测试
覆盖范围识别中选择
测试
用例。为了执行此操作,
测试
工程师使用已运行的
测试
用例的子集来减少重新
测试
所需的成本和工作量。回归
测试
可确保...
弱网
测试
?Fiddler抓包模拟弱网络
测试
,一篇彻底打通...
前言 一、Python编程入门到精通 二、接口自动化项目实战 三、Web自动化项目实战 四、App自动化项目实战 五、一线大厂简历 六、
测试
开发DevOps体系 七、常用自动化
测试
工具 八、JMeter性能
测试
九、总结(尾部小惊喜...
WEB 安全性
测试
用例
建立整体的威胁模型,
测试
溢出漏洞、信息泄漏、错误处理、SQL 注入、身份验证和授权错误. 1. 输入验证 客户端验证 服务器端验证(禁用脚本调试,禁用Cookies) 1.输入很大的数(如4,294,967,269),输入很小的数...
Java SE
62,635
社区成员
307,269
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章