首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java Basic登录特性

Java Basic登录特性
EN

Stack Overflow用户
提问于 2013-09-29 09:51:26
回答 5查看 753关注 0票数 0

我试图在这个程序中实现一个登录功能。我终于想出了如何做一个基本的,但遗憾的是,我不知道如何结束它,例如,如果用户最终达到了3的极限,它应该结束,但我的仍然继续,我不知道我应该在哪里和什么代码,以便它结束比继续主程序。

进口java.io.*;

公共类密码{

代码语言:javascript
复制
public static void main(String args[]) throws IOException{

    String name, un, pw;
    String Username = "passwordtest";
    String Password = "test123";
    int stud;
    double math, science, english, filipino, social, ave, sum, fingrade;

    BufferedReader inpt = new BufferedReader (new InputStreamReader(System.in));

    for(int trial=1; trial<=3; trial++){
    System.out.print("Username: ");
    un = inpt.readLine();

    System.out.print("Password: ");
    pw = inpt.readLine();

    System.out.println("");

    if (un.equals(Username) && pw.equals(Password)){
        System.out.println("You have successfully logged in!");
        trial=trial+2;
        continue;
    }else{
        System.out.println("Sorry, Incorrect Username/Password");
        System.out.println("Please Try Again");
        System.out.println("");
        }
    }
    System.out.println("");

    System.out.println("Welcome to ITMinions' Grading System!");
    System.out.println("How many students' grades would you like to record?");
    System.out.print("Answer: ");
    stud=Integer.parseInt(inpt.readLine());

    System.out.println("");

for (int ctr=1; ctr<=stud; ctr++){
    System.out.print("Name of the student: ");
    name = inpt.readLine();

    System.out.println("");
    System.out.println("Input the following grades");

    System.out.print("Math: ");
    math = Double.parseDouble(inpt.readLine());

    if(math<65 || math>100){
        System.out.println("");
        System.out.println("Wrong input, try again.");
        System.out.println("");
        ctr=ctr-1;
        continue;
    }

    System.out.print("Science: ");
    science = Double.parseDouble(inpt.readLine());

    if(science<65 || science>100){
        System.out.println("");
        System.out.println("Wrong input, try again.");
        System.out.println("");
        ctr=ctr-1;
        continue;
    }

    System.out.print("English: ");
    english = Double.parseDouble(inpt.readLine());

    if(english<65 || english>100){
        System.out.println("");
        System.out.println("Wrong input, try again.");
        System.out.println("");
        ctr=ctr-1;
        continue;
    }

    System.out.print("Filipino: ");
    filipino = Double.parseDouble(inpt.readLine());

    if(filipino<65 || filipino>100){
        System.out.println("");
        System.out.println("Wrong input, try again.");
        System.out.println("");
        ctr=ctr-1;
        continue;
    }

    System.out.print("History: ");
    social = Double.parseDouble(inpt.readLine());

    if(social<65 || social>100){
        System.out.println("");
        System.out.println("Wrong input, try again.");
        System.out.println("");
        ctr=ctr-1;
        continue;
    }

    sum=math+science+english+filipino+social;
    ave=sum/5;

    System.out.println("");
    System.out.println("The average of " + name + " is: " + ave);
    System.out.println("");

 }

}

}

请帮帮我!是的,这与学校的工作有关:)谢谢!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-09-29 10:02:47

我将重写循环中处理后续完整登录的部分,如下所示:

代码语言:javascript
复制
    if (un.equals(Username) && pw.equals(Password)){
        System.out.println("You have successfully logged in!");
        break;
    }

注意,使用break关键字可以从循环中分离出来。

当用户使用了所有登录尝试时,您可以使用System.exit(0);退出。

票数 0
EN

Stack Overflow用户

发布于 2013-09-29 10:05:07

例如,您必须使用另一个变量:布尔isLoggedIn,如果成功登录,则设置该变量,然后中断而不是继续,如下所示:

代码语言:javascript
复制
if (un.equals(Username) && pw.equals(Password)){
    System.out.println("You have successfully logged in!");
    isLoggedIn = true;
    break;
}else{
    System.out.println("Sorry, Incorrect Username/Password");
    System.out.println("Please Try Again");
    System.out.println("");
}

然后在for循环之外,检查if(isLoggedIn)并执行相应的操作。

票数 0
EN

Stack Overflow用户

发布于 2013-09-29 10:08:16

修改fi语句

代码语言:javascript
复制
if (un.equals(Username) && pw.equals(Password)){
        System.out.println("You have successfully logged in!");
        break;;
    }else{
        System.out.println("Sorry, Incorrect Username/Password");
        System.out.println("Please Try Again");
        System.out.println("");
        }
    }


if(trail==4)
{
   //Write your locking logic here
}

在代码中硬编码并不是很好的实践。为了简单起见,尝试使用属性文件,或者如果有时间使用jdbc。

若要避免空指针异常,请使用

代码语言:javascript
复制
Username.equals(un)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19076620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档