java编程过程中的小问题!
packageexercise;importjava.util.Scanner;publicclasstestfor3{packageexercise;importjav...
package exercise;
import java.util.Scanner;
public class testfor3 {
package exercise;
import java.util.Scanner;
public class testfor3 {
public static void main(String[] args) {
String username = "aa";
String password = "0000";
Scanner input = new Scanner(System.in);
for (int i = 3; i >= 1; i--) {
System.out.print("请输入用户名:");
String name = input.next();
System.out.println("请输入密码:");
String pas = input.next();
if (name.equals(username) && pas.equals(password)) {
System.out.println("\n欢迎进入购物系统!");
break;//(问题1)
} else if (i != 1) {
int lefttime = i - 1;//(问题2)
System.out.println("\n用户名和密码不匹配");
System.out.println("你还有" + lefttime + "次机会,请重新输入:");
//(问题3) } else {
System.out.println("\n您没有权限进入系统!");
}
}
}
}
问题1,这个循环程序的出现的break有什么什么,结束第一个循环吗,能不能解释下。是不是如果用户名和密码相符合,结束这个循环,那么为什么不在问题3的地方也加一个break呢?我可以解释为当i不等于1的时候,输出......然后结束这个循环。
问题2,这个lefttime不应该赋值为i吗,你看,当i=3时,经历第一个循环,然后i--,不就变成2了吗,直接输出呀int lefttime=i!
问题2 我已经知道了,主要是问题1很困扰,希望大家解答下。 展开
import java.util.Scanner;
public class testfor3 {
package exercise;
import java.util.Scanner;
public class testfor3 {
public static void main(String[] args) {
String username = "aa";
String password = "0000";
Scanner input = new Scanner(System.in);
for (int i = 3; i >= 1; i--) {
System.out.print("请输入用户名:");
String name = input.next();
System.out.println("请输入密码:");
String pas = input.next();
if (name.equals(username) && pas.equals(password)) {
System.out.println("\n欢迎进入购物系统!");
break;//(问题1)
} else if (i != 1) {
int lefttime = i - 1;//(问题2)
System.out.println("\n用户名和密码不匹配");
System.out.println("你还有" + lefttime + "次机会,请重新输入:");
//(问题3) } else {
System.out.println("\n您没有权限进入系统!");
}
}
}
}
问题1,这个循环程序的出现的break有什么什么,结束第一个循环吗,能不能解释下。是不是如果用户名和密码相符合,结束这个循环,那么为什么不在问题3的地方也加一个break呢?我可以解释为当i不等于1的时候,输出......然后结束这个循环。
问题2,这个lefttime不应该赋值为i吗,你看,当i=3时,经历第一个循环,然后i--,不就变成2了吗,直接输出呀int lefttime=i!
问题2 我已经知道了,主要是问题1很困扰,希望大家解答下。 展开
展开全部
这个程序的设计是用户名输入用户名和密码错误后,提示还有i次机会,大于等于3次之后就退出整个程序。
问题1:如果用户名和密码都正确,提示“欢迎进入购物系统!”,break退出循环。
问题2:因为是else if,所以是在用户名和密码有一个不正确的情况下,且i不等于1的情况下,提示“用户名和密码不匹配”,然后lefttime其实是没必要的,可以直接写成i-1更为简洁(此时的i还没有-1哦,要等整个循环体结束才会-1)
System.out.println("你还有" + (i - 1) + "次机会,请重新输入:");
问题3:如果你在这里加个break的话,循环就结束了,也就是说当你输错一次用户名或密码,程序就结束了,也就不会进行3次循环了。
展开全部
当然是0呀 兄弟. 他是包左不包又, 左闭右开区间,
还有你这个问题 是js有这么一道题.
js中的 substring() 方法返回的子串包括 start 处的字符,但不包括 stop 处的字符。(和java 的一样)
js中的 substr() 的参数指定的是子串的开始位置和长度
还有你这个问题 是js有这么一道题.
js中的 substring() 方法返回的子串包括 start 处的字符,但不包括 stop 处的字符。(和java 的一样)
js中的 substr() 的参数指定的是子串的开始位置和长度
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
整体逻辑:
用户名密码验证次数为3次
输入用户名,密码,
匹配则提示成功,退出程序, 问题1处break就是为了这个功能
不匹配则验证次数减1, 继续输入用户名密码. 在问题3处break会造成次数没用完就直接退出程序了
次数用完,提示失败,退出程序
用户名密码验证次数为3次
输入用户名,密码,
匹配则提示成功,退出程序, 问题1处break就是为了这个功能
不匹配则验证次数减1, 继续输入用户名密码. 在问题3处break会造成次数没用完就直接退出程序了
次数用完,提示失败,退出程序
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询