为什么输入完用户名后的代码不执行了?

微凉风又起 2018-02-12 08:52:24

public class Landing { //管理员注册
public void land() {
String[] userName = new String [999];//定义一个数组保存 用户名
int[] passWord = new int [999];//定义一个数组保存密码

while(true) {
Scanner input = new Scanner(System.in);
int i = 0;
boolean flag = true;
while(flag) {
System.out.println("请填写用户名");
userName[i]= input.next();

for(int j=0; j<userName.length;j++) {
if(input.next().equals(userName[i])) {
System.out.println("用户名已存在!请重新输入");

break;
}
}
flag = false;
}
System.out.println("请填写密码");
try { //捕获异常
passWord[i]=input.nextInt();
System.out.println("注册成功");
break;
}
catch(Exception e) {
System.out.println("密码格式不正确,请输入数字!");
}
}
}
}
...全文
1199 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
无聊的上午 2018-02-13
  • 打赏
  • 举报
回复
你后面代码没看 还有BUG package td; import java.util.Scanner; public class Test2 { public void land() { String[] userName = new String [999];//定义一个数组保存 用户名 int[] passWord = new int [999];//定义一个数组保存密码 System.out.println(userName.length); while(true) { Scanner input = new Scanner(System.in); int i = 0; boolean flag = true; while(flag) { System.out.println("请填写用户名"); userName[i]= input.next(); while(true) { System.out.println("请输入用户名"); String newUserNm = input.next(); if(userName[i].equals(newUserNm)) { System.out.println("用户名已存在!请重新输入"); continue; }else { userName[i+1] = newUserNm; i++; break; } } flag = false; } System.out.println("请填写密码"); try { //捕获异常 passWord[i]=input.nextInt(); System.out.println("注册成功"); break; }catch(Exception e) { System.out.println("密码格式不正确,请输入数字!"); } } } public static void main(String[] args) { new Test2().land(); } } 再给你改改
无聊的上午 2018-02-13
  • 打赏
  • 举报
回复
引用 4 楼 gansiwei 的回复:

import java.util.Scanner;
import java.io.*;
public class Landing {  //管理员注册
public  static void main(String[] args) {
String[] userName = new String [1];//定义一个数组保存 用户名---你定义是999个要输入999次才进行下一步,现在改成1后输入2次就进行下一步了
int[] passWord = new int [1];//定义一个数组保存密码

while(true) {
Scanner input = new Scanner(System.in);
int i = 0;
boolean flag = true;
while(flag) {
System.out.println("请填写用户名");  
userName[i]= input.next();

for(int j=0; j<userName.length;j++) {
if(input.next().equals(userName[i])) {
System.out.println("用户名已存在!请重新输入");
 
break;
}
}
flag = false;
}
System.out.println("请填写密码");
try {  //捕获异常
passWord[i]=input.nextInt();
System.out.println("注册成功");
break;
}
catch(Exception e) {
System.out.println("密码格式不正确,请输入数字!");	
}
}	
}
}

不知道你自己测试过他代码没,估计没有,还真不用999次,因为他的i没自增,永远都是0
天空海阔66 2018-02-13
  • 打赏
  • 举报
回复

import java.util.Scanner;
import java.io.*;
public class Landing {  //管理员注册
public  static void main(String[] args) {
String[] userName = new String [1];//定义一个数组保存 用户名---你定义是999个要输入999次才进行下一步,现在改成1后输入2次就进行下一步了
int[] passWord = new int [1];//定义一个数组保存密码

while(true) {
Scanner input = new Scanner(System.in);
int i = 0;
boolean flag = true;
while(flag) {
System.out.println("请填写用户名");  
userName[i]= input.next();

for(int j=0; j<userName.length;j++) {
if(input.next().equals(userName[i])) {
System.out.println("用户名已存在!请重新输入");
 
break;
}
}
flag = false;
}
System.out.println("请填写密码");
try {  //捕获异常
passWord[i]=input.nextInt();
System.out.println("注册成功");
break;
}
catch(Exception e) {
System.out.println("密码格式不正确,请输入数字!");	
}
}	
}
}

无聊的上午 2018-02-13
  • 打赏
  • 举报
回复
然后教你个东西,你应该才接触,后面你应该能接触到集合,这边我就不用集合,还是用数组,Arrays.copyOf(oldArray,newLength) 数组的扩容和缩容的方法,参数是被操作数组和该数组要达到的新长度
无聊的上午 2018-02-13
  • 打赏
  • 举报
回复
引用 1 楼 qq_35470953 的回复:
你这注册 好复杂 i值没递增 一直都是0 不是没执行,而是你第二次输出前没提示 在你的基础给你改了下 package td; import java.util.Scanner; public class Test2 { public void land() { String[] userName = new String [999];//定义一个数组保存 用户名 int[] passWord = new int [999];//定义一个数组保存密码 while(true) { Scanner input = new Scanner(System.in); int i = 0; boolean flag = true; while(flag) { System.out.println("请填写用户名"); if(userName.length<=0) { userName[i]= input.next(); }else { for(int j=0; j<userName.length;j++) { System.out.println("请输入用户名"); String newUserNm = input.next(); if(userName[i].equals(newUserNm)) { System.out.println("用户名已存在!请重新输入"); break; }else { userName[i+1] = newUserNm; i++; } } } flag = false; } System.out.println("请填写密码"); try { //捕获异常 passWord[i]=input.nextInt(); System.out.println("注册成功"); break; }catch(Exception e) { System.out.println("密码格式不正确,请输入数字!"); } } } public static void main(String[] args) { new Test2().land(); } } 淡然这种做法不是最简
改一下 有BUG
无聊的上午 2018-02-13
  • 打赏
  • 举报
回复
你这注册 好复杂 i值没递增 一直都是0 不是没执行,而是你第二次输出前没提示 在你的基础给你改了下 package td; import java.util.Scanner; public class Test2 { public void land() { String[] userName = new String [999];//定义一个数组保存 用户名 int[] passWord = new int [999];//定义一个数组保存密码 while(true) { Scanner input = new Scanner(System.in); int i = 0; boolean flag = true; while(flag) { System.out.println("请填写用户名"); if(userName.length<=0) { userName[i]= input.next(); }else { for(int j=0; j<userName.length;j++) { System.out.println("请输入用户名"); String newUserNm = input.next(); if(userName[i].equals(newUserNm)) { System.out.println("用户名已存在!请重新输入"); break; }else { userName[userName.length-1] = newUserNm; } } } flag = false; } System.out.println("请填写密码"); try { //捕获异常 passWord[i]=input.nextInt(); System.out.println("注册成功"); break; }catch(Exception e) { System.out.println("密码格式不正确,请输入数字!"); } } } public static void main(String[] args) { new Test2().land(); } } 淡然这种做法不是最简
1,项目功能:注册:用户输入用户名,密码,邮箱等信息进行注册。其中用户名,密码,邮箱不能为空,密码不能少于6位,邮箱必须包含@符号等进行验证,若验证不通过会有提示框。注册成功实现自动登录,并跳转到主页面。登录:通过输入用户名和密码进行后台数据库验证,若验证的用户名和密码在数据库中存在且正确即为成功,跳转到主页面,若不成功,提示用户名或密码错误。浏览文章;可以浏览其他用户发的贴子或者文章。文章搜索:游客可以根据文章标题进行搜索功能。查看文章详细信息:可以查看文章的详细信息。查看热门文章:可以查看热门文章。板块信息查看:可以查看板块信息。点赞、评论、收藏:对文章可以发表评论,点赞,收藏,对自己发表的评论可以删除对喜欢的用户可以加关注或者取消关注。我的主页:可以查看个人信息和修改个人信息,同时也可以查看到我的关注,我的收藏信息和我的评论信息。我的相册:可上传本地照片到自己的相册,并对相册进行编辑操作。用户管理:可以查看所有用户信息,并删除。文章管理:审核用户发的文章有无敏感词汇,可审核通过和拒绝。板块管理:查询所有板块信息,新增,修改,删除板块。      适合做毕业设计参考项目。2,涉及技术:SSM框架,Tomcat3,开发环境:IDEA,MySQL数据库4,讲解方式:从环境安装,项目搭建,以及项目介绍等进行讲解5,包含资料:项目源码(含数据库文件),环境安装包,项目文档。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧