黑马程序员技术交流社区
标题:
如何判断程序中flag为true?
[打印本页]
作者:
ㄗ灬Night|K
时间:
2013-10-8 18:45
标题:
如何判断程序中flag为true?
本帖最后由 ㄗ灬Night|K 于 2013-10-9 10:59 编辑
在毕老师24天第三节课的程序中,在程序第89行是如何判断flag为true的,脑子有点转不过来了.......
/*
客户端通过键盘录入用户名。
服务端对这个用户名进行校验。
如果该用户存在,在服务端显示xxx,已登陆。
并在客户端显示 xxx,欢迎光临。
如果该用户存在,在服务端显示xxx,尝试登陆。
并在客户端显示 xxx,该用户不存在。
最多就登录三次。
*/
import java.io.*;
import java.net.*;
class LoginClient
{
public static void main(String[] args) throws Exception
{
Socket s = new Socket("192.168.1.254",10008);
BufferedReader bufr =
new BufferedReader(new InputStreamReader(System.in));
PrintWriter out = new PrintWriter(s.getOutputStream(),true);
BufferedReader bufIn =
new BufferedReader(new InputStreamReader(s.getInputStream()));
for(int x=0; x<3; x++)
{
String line = bufr.readLine();
if(line==null)
break;
out.println(line);
String info = bufIn.readLine();
System.out.println("info:"+info);
if(info.contains("欢迎"))
break;
}
bufr.close();
s.close();
}
}
class UserThread implements Runnable
{
private Socket s;
UserThread(Socket s)
{
this.s = s;
}
public void run()
{
String ip = s.getInetAddress().getHostAddress();
System.out.println(ip+"....connected");
try
{
for(int x=0; x<3; x++)
{
BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
String name = bufIn.readLine();
if(name==null)
break;
BufferedReader bufr = new BufferedReader(new FileReader("user.txt"));
PrintWriter out = new PrintWriter(s.getOutputStream(),true);
String line = null;
boolean flag = false;
while((line=bufr.readLine())!=null)
{
if(line.equals(name))
{
flag = true;
break;
}
}
if(flag)
{
System.out.println(name+",已登录");
out.println(name+",欢迎光临");
break;
}
else
{
System.out.println(name+",尝试登录");
out.println(name+",用户名不存在");
}
}
s.close();
}
catch (Exception e)
{
throw new RuntimeException(ip+"校验失败");
}
}
}
class LoginServer
{
public static void main(String[] args) throws Exception
{
ServerSocket ss = new ServerSocket(10008);
while(true)
{
Socket s = ss.accept();
new Thread(new UserThread(s)).start();
}
}
}
复制代码
作者:
To
时间:
2013-10-8 18:59
定义标记。使程序有结束的条件。这是一种思想。
就想理解当初毕老师讲的大全套小圈一样去理解。把他当做一种解决思想。
我这么理解。片面之间。希望有用
作者:
winsking
时间:
2013-10-8 19:43
while((line=bufr.readLine())!=null)
{
if(line.equals(name))
{
flag = true;
break;
}
}
80行开始,这里是用来判断flag的,根据你键盘输入的名字,服务端收到后和txt中存好的名字进行比较,利用readLine方法一行一行的比,如果有相等的吗,那就是flag为ture
作者:
杨增坤
时间:
2013-10-8 21:27
if(条件是布尔类型)
只要是布尔类型就可以,flag本来就是布尔类型,所以可以直接写到里面
作者:
To
时间:
2013-10-9 08:43
如果问题已解决,请将帖子改为提问结束,如果没有解决请楼主继续提问,谢谢合作
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2