我是一名初学程序员,并不完全了解方法及其运作方式。我正在尝试制作一个摇滚剪刀程序,程序随机选择一个,然后要求用户输入。我遇到的问题是方法。我的代码在下面,我得到的错误是我无法返回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];
}
答案 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是有效索引。