首页 > 解决方案 > 为什么 for 循环中的 if 条件不运行?

问题描述

该代码基本上会生成一个 Pincode 并要求用户编写它。然后显示输入是否正确。此外,如果用户在一两次试验后立即得到它,它应该显示“你在(一两次)试验中成功猜出了你的密码”

package assign4;
import java.util.*;

public class assign4 {
    public static void main (String[]args) {
        Scanner sc = new Scanner(System.in);

        int min = 999;
        int max = 10000;
        int generatedPin = (int) (Math.random()*(max-min+1)+min);
        System.out.println("Please enter the pincode sent to you " + generatedPin);
        int input = sc.nextInt();

        if (input == generatedPin) {
          System.out.println("you succeeded to guess your pincode in one trial");
        }
        for(int i = 0; input != generatedPin && i<3; i++) {
          if (i==0) {
            System.out.println("wrong pin! two trial left!");
            input = sc.nextInt();
          } else

为什么以下if条件不运行?

                if (i==1) {
                System.out.println("wrong pin! one trial left!");
                input = sc.nextInt();
                    if (input == generatedPin) {
                        System.out.println("you succeeded to guess your pincode in 1 trial");
                    }
                } 

else 
                    if (i==2)
                        System.out.println("wrong pin! we will lock your account");     
        }
}}

标签: javaif-statement

解决方案


正如您设置的循环条件一样,如果 input == generatedPin 则循环将立即中断,因此“if”成为无法访问的代码


推荐阅读