我的代码没有语法错误,但是当我启动程序时,我没有在控制台中收到消息,因为我应该得到
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);
}
}
我感谢每一个解释。
答案 0 :(得分:0)
你的循环中的条件应该是b < 9
,否则你永远不会进入它的身体。但是,做你想做的最好的方法是:
b = 0;
while (a != b) b++;
System.out.println("found the number " + b);
答案 1 :(得分:0)
两个问题:
b == 9
切换b < 9
(以便在b小于9时执行for循环体)return;
语句 - 否则您可能会进入无限(while)循环。while (a != b) {
for (b = 0; b < 9; b++) { // b < 9
if (b == a) {
System.out.println("found the number " + b);
return; // second change
}
}
}
更多评论:
a
和b
作为search()
的参数传递,因为您要做的第一件事就是重新分配它们。b
仅用于for循环,无需在更广的范围内声明while
循环是不必要的以下代码将执行相同的操作:
public static void main(String[] args) {
search();
}
private static void search() {
Random r = new Random();
int a = r.nextInt(9);
for (int b = 0; b < 9; b++) {
if (b == a) {
System.out.println("found the number " + b);
return;
}
}
}
值得一提的是,既然我们没有包装while
循环,即使我们将删除return语句,代码仍然可以工作!
答案 2 :(得分:0)
首先,您可能会错误地使用for
循环,
for(b=0;b == 9; b++)
b==9
是必须满足的条件。显然,这种情况永远不会满足,因为b = 0
在第一步。
所以,
for (b = 0; b < 9; b++)
很好。
找到a==b
后,您必须打破while
循环。
while (a != b) {
for (b = 0; b < 9; b++) {
if (b == a) {
System.out.println("found the number " + b);
break;
}
}
}
实际上,while
循环没用,流动就足够了,
for(b = 0; b < 9; b++)
{
if (b == a) {
System.out.println("found the number " + b);
break;
}
}