返回类型void / method alternative?

时间:2016-04-17 16:09:16

标签: java methods void return-type

我是一名初学程序员,并不完全了解方法及其运作方式。我正在尝试制作一个摇滚剪刀程序,程序随机选择一个,然后要求用户输入。我遇到的问题是方法。我的代码在下面,我得到的错误是我无法返回void方法的值,但我不知道我还能做些什么来使它工作。任何建议将不胜感激!

public class RPS {

  public static void main (String[] args) {

    String[] list = {"rock", "paper", "scissors"}; 

    Random rand = new Random();
        int x = rand.nextInt();

        switch (x) {
            case 0: return list[0];
            case 1: return list[1];
            case 2: return list[2];
        }

2 个答案:

答案 0 :(得分:1)

def validate_ip(): global ip_add_list check = False while True: try: ip_file = raw_input("Enter the file name and extension:") selected_ip_file = open(ip_file,'r') selected_ip_file.seek(0) ip_add_list = selected_ip_file.readlines() selected_ip_file.close() #print ip_add_list except IOError: print"*File %s doesn't exist, try again" % ip_file continue check2 = False while True: for ip in ip_add_list: print ip ping_reply = subprocess.call(['ping','-n','5','-w','1000','-a',ip]) if ping_reply == 0: check2 = True print "pings completed" else: check2 = False break if check2 == True: break elif check2 == False: print"Some or all ip(s) in the file are not reachable, please check and try again" validate_ip() 用于从return所在的方法返回。

在这种情况下,我想您希望将所选值存储到某个地方,稍后在同一方法中使用它。

试试这个:

return

此代码将消除错误,但此代码很有可能打印import java.util.Random; public class RPS { public static void main (String[] args) { String[] list = {"rock", "paper", "scissors"}; Random rand = new Random(); int x = rand.nextInt(); String hand = null; if (0 <= x && x <= 2) hand = list[x]; // do something using hand System.out.println(hand); } } 并且不是一个好的代码。

如果您想使用null,可以将其放在另一种方法中。

return

答案 1 :(得分:1)

你可以试试这个:

public class RPS {

  public static void main (String[] args) {

    String[] list = {"rock", "paper", "scissors"}; 

    Random rand = new Random();
    int x = rand.nextInt();

    System.out.println( list[x%list.length] );     
  }

关于您的问题:rand.nextInt()很可能会返回大于3的值(=数组的大小)。请注意,对于长度数组,只有0,1,...,n-1是有效索引。