Java 在'中的声明;其他';正在打印多次,但我希望在';如果';这是错误的

Java 在'中的声明;其他';正在打印多次,但我希望在';如果';这是错误的,java,for-loop,if-statement,while-loop,java.util.scanner,Java,For Loop,If Statement,While Loop,Java.util.scanner,这里,我比较的是用户ID和密码数组的数组元素。 如果条件错误,我希望只打印一次if语句 我可以取其他变量吗?或者有人建议我是否可以在任何地方使用break语句 public static void main(String args[]) { lib1 o=new lib1(); Scanner in=new Scanner(System.in); Scanner sc=new Scanner(System.in);

这里,我比较的是用户ID和密码数组的数组元素。 如果条件错误,我希望只打印一次
if
语句

我可以取其他变量吗?或者有人建议我是否可以在任何地方使用
break
语句

      public static void main(String args[])
       {
        lib1 o=new lib1();
        Scanner in=new Scanner(System.in);
        Scanner sc=new Scanner(System.in);
        int u[]={51,52,53,54,55};
        int p[]={1,2,3,4,5};
        int d=0;
        System.out.println("enter username and password");
        int un=in.nextInt();
        int pw=in.nextInt();

        for(int i=0,j=0;i<5 && j<5;i++,j++)
        {
            if(un==u[i] && pw==p[j])
            {
                while(d==0)
                {
                    System.out.println("enter subject name");
                    String c=sc.nextLine(); 
                    if(c.equals("java"))
                    o.java();
                    else if(c.equals("exit"))
                    {
                        d++;
                    }
                }
            }

            else
            {   
                System.out.println("invalid password"); 
            }   
        }
    }
publicstaticvoidmain(字符串参数[])
{
lib1o=新的lib1();
扫描仪输入=新扫描仪(系统输入);
扫描仪sc=新的扫描仪(System.in);
INTU[]={51,52,53,54,55};
int p[]={1,2,3,4,5};
int d=0;
System.out.println(“输入用户名和密码”);
int un=in.nextInt();
int pw=in.nextInt();
对于(inti=0,j=0;i
publicstaticvoidmain(字符串args[]))
{
lib1o=新的lib1();
扫描仪输入=新扫描仪(系统输入);
扫描仪sc=新的扫描仪(System.in);
INTU[]={51,52,53,54,55};
int p[]={1,2,3,4,5};
int d=0;
System.out.println(“输入用户名和密码”);
int un=in.nextInt();
int pw=in.nextInt();
对于(inti=0,j=0;i
publicstaticvoidmain(字符串args[]))
{
lib1o=新的lib1();
扫描仪输入=新扫描仪(系统输入);
扫描仪sc=新的扫描仪(System.in);
INTU[]={51,52,53,54,55};
int p[]={1,2,3,4,5};
int d=0;
System.out.println(“输入用户名和密码”);
int un=in.nextInt();
int pw=in.nextInt();

对于(int i=0,j=0;i在
else
块的末尾添加一个
break
。这将允许您立即退出for循环。

else
块的末尾添加一个
break
。这将允许您立即退出for循环。

您可以将
break
语句放在循环的任何位置希望立即退出循环。这意味着您可以将其放入
else
块,或
if
块,或需要中断的任何位置。在嵌套循环中,
break
语句只会从调用它的立即循环中断


另外,在您的代码中创建两个
扫描仪
对象,它们使用
系统。在
中作为输入源。不建议这样做,因为如果一个
扫描仪
关闭,另一个也将关闭。相反,只创建一个
扫描仪
对象,并且仅当您完全使用完它时才将其关闭。

break
语句放在循环中希望立即退出循环的任何位置。这意味着您可以将其放在
else
块、或
if
块或需要中断的任何位置。在嵌套循环中,
break
语句只会从调用它的立即循环中断

Add if statement in end as shown in bold in code below.

public static void main(String args[])
           {
            lib1 o=new lib1();
            Scanner in=new Scanner(System.in);
            Scanner sc=new Scanner(System.in);
            int u[]={51,52,53,54,55};
            int p[]={1,2,3,4,5};
            int d=0;
            System.out.println("enter username and password");
            int un=in.nextInt();
            int pw=in.nextInt();

            for(int i=0,j=0;i<5 && j<5;i++,j++)
            {
                if(un==u[i] && pw==p[j])
                {
                    while(d==0)
                    {
                        System.out.println("enter subject name");
                        String c=sc.nextLine(); 
                        if(c.equals("java"))
                        o.java();
                        else if(c.equals("exit"))
                        {
                            d++;
                        }
                    }
                }   
            }
            **if(d == 0) {
                System.out.println("invalid password");
            }**
        }
另外,在您的代码中创建两个
扫描仪
对象,它们使用
系统。在
中作为输入源。不建议这样做,因为如果一个
扫描仪
关闭,另一个也将关闭。相反,只创建一个
扫描仪
对象,并且仅当您完全使用完它时才将其关闭。

Add结尾的if语句,如下面代码中的粗体所示。
Add if statement in end as shown in bold in code below.

public static void main(String args[])
           {
            lib1 o=new lib1();
            Scanner in=new Scanner(System.in);
            Scanner sc=new Scanner(System.in);
            int u[]={51,52,53,54,55};
            int p[]={1,2,3,4,5};
            int d=0;
            System.out.println("enter username and password");
            int un=in.nextInt();
            int pw=in.nextInt();

            for(int i=0,j=0;i<5 && j<5;i++,j++)
            {
                if(un==u[i] && pw==p[j])
                {
                    while(d==0)
                    {
                        System.out.println("enter subject name");
                        String c=sc.nextLine(); 
                        if(c.equals("java"))
                        o.java();
                        else if(c.equals("exit"))
                        {
                            d++;
                        }
                    }
                }   
            }
            **if(d == 0) {
                System.out.println("invalid password");
            }**
        }
公共静态void main(字符串参数[]) { lib1o=新的lib1(); 扫描仪输入=新扫描仪(系统输入); 扫描仪sc=新的扫描仪(System.in); INTU[]={51,52,53,54,55}; int p[]={1,2,3,4,5}; int d=0; System.out.println(“输入用户名和密码”); int un=in.nextInt(); int pw=in.nextInt(); 对于(inti=0,j=0;i
addif语句,如下面代码中粗体所示)。
公共静态void main(字符串参数[])
{
lib1o=新的lib1();
扫描仪输入=新扫描仪(系统输入);
扫描仪sc=新的扫描仪(System.in);
INTU[]={51,52,53,54,55};
int p[]={1,2,3,4,5};
int d=0;
System.out.println(“输入用户名和密码”);
int un=in.nextInt();
int pw=in.nextInt();

对于(inti=0,j=0;我已经试过了,先生,但即使是真的,它也在打印else语句。我已经试过了,先生,但即使是真的,它也在打印else语句。但是,先生,如果(un==u[0]&&pw==p[0])是假的,那么如果(un==u[1]&&pw==p[1])是真的,它会跳出循环。但是,先生,在if(un==u[0]之后它会跳出循环&&pw==p[0])为假,但如果(un==u[1]&&pw==p[1])为真,该怎么办?是否可以一次只通过一个扫描器获取字符串和Int两种类型的输入?@Deeptank您可以从一个
扫描器
对象中同时获取
String
s和
Int
s。这意味着您可以调用
Scanner.nextInt()
,或
scanner.nextLine()
,等等,都使用相同的
scanner
。一次只需一个扫描仪就可以获取字符串和Int两种类型的输入吗?@Deeptank您可以从一个
扫描仪
对象中同时获取
String
s和
Int
s。这意味着您可以调用
scanner.nextInt()
,或
scanner.nextLine()
等,都使用相同的
扫描器
。为了清楚起见,运行时要退出哪个
else
块?如果是
while
循环中的
else
,则需要另一个
中断
退出
for
循环。为了清楚起见,要退出哪个
else
块o运行时是否退出?如果是
while
循环中的
else
,则需要另一个
中断
以退出
for
循环。