Java 类型为void(return;)

Java 类型为void(return;),java,return,void,Java,Return,Void,我只是想知道这些代码缺少什么。我想发生的是,我希望这个返回顶部,并再次要求一个新的号码 我尝试了返回用户;正如你所看到的,但它一直在说它是空的。 如果你愿意帮忙,谢谢你 import java.io.*; class For { public static void main (String args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(

我只是想知道这些代码缺少什么。我想发生的是,我希望这个返回顶部,并再次要求一个新的号码

我尝试了返回用户;正如你所看到的,但它一直在说它是空的。 如果你愿意帮忙,谢谢你

import java.io.*;

class For {
    public static void main (String args[]) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int user;

        System.out.print("Insert number: ");
        user = Integer.parseInt(br.readLine());

        for (user = user; user >=10; user++) {
            System.out.println("User: " + user);
            return user;    //this
        }

    }
}
return语句并不意味着任何类型的循环:它通过返回一些值从方法中退出,如果您试图执行循环,这绝对不是您想要的


相反,您必须在for循环中包含对用户的输入请求,并删除return语句。此外,还必须修改循环的开始和结束条件,以从值user=0;开始;,直到用户在循环中添加输入,如:

for (int user = 0; user < 10; user++) {
  System.out.print("Insert number: ");
  int no = Integer.parseInt(br.readLine());

  System.out.println("number: " + no);
}
此外,循环中存在错误,条件变量应小于10,当它达到10时,将变为false,因此循环退出


此外,在循环内部,不要更改计数器变量,否则它将更改循环。如果您已声明该方法返回void,但您试图返回int,则这是一个直接的编译器错误。当您想要/需要完成某项操作并重复此操作直到满足条件时,请使用while或do while-bucle语句:

class For {
    public static void main (String args[]) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int user = 1;

        System.out.print("Insert number. Insert zero or less to exit.");
        user = Integer.parseInt(br.readLine());
        //start here
        while (user > 0) {
            //for (user = user; user <=10; user++) {
            System.out.println("User: " + user);
            //return user; //this
            System.out.print("Insert number. Insert zero or less to exit.");
            user = Integer.parseInt(br.readLine());
        }
    }
}

在publicstaticvoid中,main将void更改为int。虽然我认为您希望打印出user?@Philip,但您不能将void更改为int。Java要求main方法为void。这个类会编译,但是你不能运行这个程序。哦,我不知道。我更熟悉c语言。您需要初始化用户变量。在for循环中,您只需将其分配给自身,用0或任何您需要的东西初始化它。对于用户=0;用户<10;用户++{return表示从返回,即离开你使用的方法,这是main。你不能只使用return表示返回到程序中的其他点。我不想太苛刻,但是如果你试图通过猜测来编程,那就不管用了,你需要找到一个好的教程。嘿,它工作得很好!谢谢!这会影响循环索引,尝试添加20当您插入数字时,循环将停止direclty@WajdyEssam你是对的,但我试图尽可能少地修改OP代码:我修改了循环条件,使其至少运行一次。也许这就是OP想要的:请求输入一个大于10的整数以退出ok,那么用户++;没有意义更好的选择是使用while或do while重复此行为,直到满足特定条件……您好!这也有效。除了for之外,我也将使用此方法。谢谢!@Naomi别忘了。另外,不客气。谢谢!这也有效!:
class For {
    public static void main (String args[]) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int user = 1;

        System.out.print("Insert number. Insert zero or less to exit.");
        user = Integer.parseInt(br.readLine());
        //start here
        while (user > 0) {
            //for (user = user; user <=10; user++) {
            System.out.println("User: " + user);
            //return user; //this
            System.out.print("Insert number. Insert zero or less to exit.");
            user = Integer.parseInt(br.readLine());
        }
    }
}