Java 我需要帮助(逻辑)

Java 我需要帮助(逻辑),java,Java,我的代码没有语法错误,但是当我启动程序时,我在控制台中没有得到我应该得到的消息 class verschlüsselung { private static void search(int b, int a) { b = 1; Random r = new Random(); a = r.nextInt(9); System.out.println(a); while (a != b) {

我的代码没有语法错误,但是当我启动程序时,我在控制台中没有得到我应该得到的消息

class verschlüsselung {

    private static void search(int b, int a) {

        b = 1;
        Random r = new Random();
        a = r.nextInt(9);
        System.out.println(a);

        while (a != b) {
            for (b = 0; b == 9; b++) {
                if (b == a) {
                    System.out.println("found the number " + b);
                }
            }
        }
    }

    public static void main(String args[]) {
        search(0, 0);
    }
}

感谢您的解释。

循环中的条件应该是
b<9
,否则您永远不会进入循环体。但是,做你想做的事情的最佳方式是:

b = 0;
while (a != b) b++;
System.out.println("found the number " + b);
两个问题:

  • 就像前面提到的其他人一样:您应该使用
    b<9
    切换
    b==9
    (这样,当b小于9时,for循环体将执行)
  • 在“找到号码”打印后,您应该添加一个
    返回语句-否则您可能会陷入无限(while)循环


  • 值得一提的是,现在我们没有了包装
    while
    循环,即使我们删除了return语句,代码仍然可以工作

    首先,您可能会错误地使用
    for
    循环

    for(b=0;b == 9; b++)
    
    b==9
    是循环必须满足的条件。显然,这个条件永远不会满足,因为在第一步中
    b=0

    所以

    实际上,
    虽然
    循环是无用的,但是流就足够了

    for(b = 0; b < 9; b++)
            {
                 if (b == a) {
                     System.out.println("found the number " + b);
                     break;
                 }
            }
    
    (b=0;b<9;b++)的
    
    {
    如果(b==a){
    System.out.println(“找到编号”+b);
    打破
    }
    }
    
    不鼓励在类名中使用umlauts。“我在控制台中没有得到我应该得到的消息”您的代码应该做什么?您希望得到什么输出?您的循环仅在
    a=b
    然后在内部检查
    如果(b==a)
    这总是错误的,我期望:1。“a”2。“找到号码+b”但我只得到了“a”为什么你用两个参数调用搜索,你两个都不使用
    for(b=0;b == 9; b++)
    
    for (b = 0; b < 9; b++)
    
     while (a != b) {
            for (b = 0; b < 9; b++) {
                if (b == a) {
                    System.out.println("found the number " + b);
                    break;
                }
            }
        }
    
    for(b = 0; b < 9; b++)
            {
                 if (b == a) {
                     System.out.println("found the number " + b);
                     break;
                 }
            }