原题为:用户登录系统时需要输入用户名和密码,系统对用户输入的用户名和密码进行验证。验证最多三次,超过三次则程序结束。根据验证结果的不同(信息匹配/信息不匹配/三次都不匹配),执行不同的操作,假设正确的用户名和密码分别为:Jim和123456.
下面是分别用while,do-while,for循环写出来的源代码(可能因循环结构不同,因此i的数值出现了偏差):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | import java.util.*; public class P137_3{ public static void main (String[]args){ Scanner input = new Scanner(System.in); String id ;//录入ID int press;//录入密码 for ( int i = 2; i>=0; i-- ){//定义表达式 System.out.println("请输入用户名(for循环):"); id = input.next();//录入用户名 System.out.println("请输入密码:"); press = input.nextInt();//录入密码 if ("Jim".equals(id) && press == 123456 ){//若输入正确,提示欢迎,并退出循环 System.out.println("欢迎登录Shopping系统!"); break; } else if ( !"Jim".equals(id) || press != 123456 ) {//录入错误,则提示错误,并提示剩余次数 System.out.println("输入错误!您还有"+i+"次输入机会!"); if ( i==0 ){//当i等于0时,提示3次输入均出错,并结束循环 System.out.println("******************"); System.out.println("对不起,您3次均输入错误!"); } continue; } } System.out.println("***********while循环开始*******"); int i = 3; while ( i>0 ){ System.out.println("请输入用户名(while循环):"); id = input.next();//录入用户名 System.out.println("请输入密码:"); press = input.nextInt();//录入密码 if ("Jim".equals(id) && press == 123456 ){//若输入正确,提示欢迎,并退出循环 System.out.println("欢迎登录Shopping系统!"); break; } else if ( !"Jim".equals(id) || press != 123456 ) {//录入错误,则提示错误,并提示剩余次数 i = i-1; System.out.println("输入错误!您还有"+i+"次输入机会!"); if ( i==0 ){//当i等于0时,提示3次输入均出错,并结束循环 System.out.println("******************"); System.out.println("对不起,您3次均输入错误!"); } continue; } i--; } System.out.println("***********do-while循环开始*******"); do{System.out.println("请输入用户名(do-while循环):"); id = input.next();//录入用户名 System.out.println("请输入密码:"); press = input.nextInt();//录入密码 if ("Jim".equals(id) && press == 123456 ){//若输入正确,提示欢迎,并退出循环 System.out.println("欢迎登录Shopping系统!"); break; } else if ( !"Jim".equals(id) || press != 123456 ) {//录入错误,则提示错误,并提示剩余次数 i = i-1; System.out.println("输入错误!您还有"+i+"次输入机会!"); if ( i==0 ){//当i等于0时,提示3次输入均出错,并结束循环 System.out.println("******************"); System.out.println("对不起,您3次均输入错误!"); } continue; } } while ( i <= 3 && i>0 ); } } |