189 8069 5689

java源码死循环代码 java死循环语句

java多线程死循环

你程序是: 服务端有不断的向客服端写信息,客户端有不断的读来自服务端的信息。 但是反过来,客户端没有不断的向服务端写信息。服务端也没有不断的读来自客户端的信息。 用线程解决: 在客户端新加一条线程,专门用来读取来自服务端的信息。 在服务端新加一条线程,专门用来读取来自客户端的信息。 而在各自的main()函数中只负责不断接收system.in信息,然后发送信息.. 其实不用线程的。。我也改了下,改的好像较多。 运行步骤: 开server端,开kehu端。客房端先写入信息。。然后,你一句我一句。只能按这顺序。。这就是没用线程的结果。 代码如下: 服务端: import java.net.*; import java.io.*; public class Server { public static void main(String[] args) { System.out.println("我是服务器"); try { ServerSocket ss=new ServerSocket(8000); Socket sk=ss.accept(); OutputStream os=sk.getOutputStream(); BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(os)); bw.write("你好,我是服务器,有什么需要我服务的嘛?\n"); bw.flush(); InputStream is=sk.getInputStream(); BufferedReader br=new BufferedReader(new InputStreamReader(is)); while(true) { String str=br.readLine(); if(str.equals("bye")||str==null)break; System.out.println("客户端说:"+str); String sr=""; BufferedReader br1=new BufferedReader(new InputStreamReader(System.in)); sr=br1.readLine(); bw.write(sr+"\n"); bw.flush(); } } catch (Exception e) { System.out.println("客用户机己断开"); } } } 客户端: import java.net.*; import java.io.*; public class kehu { public static void main(String[] args) { System.out.println("我是客户"); try { Socket s=new Socket(InetAddress.getByName(null),8000); InputStream is=s.getInputStream(); BufferedReader br=new BufferedReader(new InputStreamReader(is)); OutputStream os=s.getOutputStream(); BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(os)); String sr=""; while(true) { sr=br.readLine(); if(sr.equals("bye")||sr==null)break; System.out.println("服务器说"+sr); BufferedReader br1=new BufferedReader(new InputStreamReader(System.in)); sr=br1.readLine(); bw.write(sr+"\n"); bw.flush(); } } catch (Exception e) { System.out.println("服务器未开户或己关闭~"); } } }

创新互联网站建设提供从项目策划、软件开发,软件安全维护、网站优化(SEO)、网站分析、效果评估等整套的建站服务,主营业务为成都网站制作、成都网站建设、外贸营销网站建设成都app软件开发公司以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。创新互联深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

java代码 造成了死循环。。。。

代码很有意思 我反而学到了不少

已经知道问题在于这个方法numCheck

实际上是考虑多了 既然用户改变了textField才会触发事件

那么 我们就没必要去再次改变textField的内容了

因此textValueChanged事件中不需要去做setText的方法

你的程序在else中那一句注释掉就行了

else中什么都不做的

private int numCheck(TextField tf_temp,String num) {

int i = 0;

while(num.matches("0+\\d+")){

num = num.substring(1);

}

try{

i = Integer.parseInt(num);

//tf_temp.setText(num);

if(i255){ //这个最多只会发生一次不会发生死循环;

i = 255;

num = "255";

tf_temp.setText(num);

System.out.println(i);

}else {

//tf_temp.setText(num); //死循环。setText触发了TextvalueChanged()检查发现小于255,这个else又成立,这样死循环;

System.out.println(i);

}

}catch(NumberFormatException e){

alertDialog.setVisible(true);

tf_temp.setText("255");

e.printStackTrace();

}

return i;

}

java的死循环问题

当某一扫描器抛出 InputMismatchException 时,该扫描器不会传递导致该异常的标记,因此可以通过其他某种方法来获取或跳过它。

这是java API文档中的原话。意思是说,如果nextInt方法没有成功解析出一个整数,那么你的输入不会被忽略。因为它或许能被其它格式解析。

那么你的程序中输入了a后,出现异常,number被赋值100,开始下一次循环,但这时数据缓冲区内你上次输入的a还在,并没有清除,这时继续解析a,还是错误,于是这个过程就一直重复下去了。

现在你要改的是,出现错误把这次的输入清除,只要在catch中,加一句:input.next()就搞定了!

java 如何停止一个死循环?

java 停止一个死循环,可以使用break关键字,跳出循环,如下代码:

package com.qiu.lin.he;

public class Ceshi {

public static void main(String[] args) {

for (int i = 2; i  0; i++) {

if (i == 80) {

System.out.println("死循环退出了");

break;

}

}

}

}

运行结果如下:


文章标题:java源码死循环代码 java死循环语句
本文来源:http://cdxtjz.com/article/dojodjh.html

其他资讯