【问题标题】:type is void (return;) [closed]类型是无效的(返回;)[关闭]
【发布时间】:2014-08-08 23:02:56
【问题描述】:

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

我尝试了返回用户; (如您所见)但它一直说它是无效的。 如果你能帮忙,谢谢!

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
        }

    }
}

【问题讨论】:

  • 在 public static void main 中将 void 更改为 int。虽然我认为您正在寻找打印出用户?
  • @Philip 您不能将void 更改为int。 Java 要求 main 方法为 void。 (该类将编译,但您无法运行该程序。)
  • 哦,不知道。我对 c 比较熟悉。
  • 你需要初始化用户变量。在你的 for 循环中,你只需将它分配给它自己,用 0 或你需要的任何东西初始化它。 for (user = 0; user < 10; user++) {
  • return 表示从您所在的方法返回(即离开),即main。您不能只使用return 来表示“返回程序中的其他点”。我讨厌苛刻,但如果你试图通过猜测来编程,那是行不通的——你需要找到一个好的教程。

标签: java return void


【解决方案1】:

在循环中添加输入,例如:

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

  System.out.println("number: " + no);
}

你的循环也有错误,条件应该是变量

在你的循环中也不要改变计数器变量,否则它会改变你的循环行为

【讨论】:

  • 谢谢!这也有效! :)
【解决方案2】:

return 语句不暗示任何类型的循环:它通过返回一些值从方法中退出,如果您尝试执行循环,这绝对不是您想要的。

相反,您必须在 for 循环中包含对用户的输入请求,并删除 return 语句。此外,您必须修改循环的开始和结束条件,从值user=0; 开始,直到user&lt;=10,通过将每次迭代user++ 的值加一。总结如下:

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

【讨论】:

  • 嘿,效果很好!谢谢!
  • 这会影响循环索引,插入数字时尝试添加20,循环将直接停止
  • @WajdyEssam 你是对的,但我试图尽可能少地修改 OP 代码:我修改了循环条件,使其至少运行一次。也许这就是 OP 想要的:请求输入大于 10 的整数以退出(好吧,那么用户++;没有意义)
  • 更好的选择是使用whiledo-while 重复此行为,直到满足特定条件...
【解决方案3】:

您已声明返回void 的方法,但您正试图返回int。这是一个直接的编译器错误。当您想要/需要执行某个操作并重复此操作直到满足某个条件时,请使用whiledo-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());
        }
    }
}

【讨论】:

猜你喜欢
  • 2022-11-30
  • 2012-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-19
  • 1970-01-01
  • 2019-05-07
  • 2022-12-06
相关资源
最近更新 更多