我一般都想学习调用方法,并想知道为什么这个简单的练习不起作用..(也有兴趣知道我是否可以在最后将一个生成的int分配给一个char(acter)这一切)
public class Run {
public static void main(String args[]) {
int y = makeMove(int x);
System.out.println(y);
}
public static makeMove(int x) {
java.util.Scanner keyboard = new java.util.Scanner(System.in);
int i = 0;
do {
System.out.print("please enter a number 1-9 " + i);
i = keyboard.nextInt();
if (i < 0 || i > 9) {
System.out.println("Not a valid selection. Please Re-enter: ");
}
} while (i < 0 || i > 9);
return i;
int x = i;
}
}
答案 0 :(得分:0)
你无法在函数调用中声明一个变量
public static void main (String args[]) {
int y;
y = makeMove(int x);
System.out.println(y);
您需要将整数值传入makeMove。 所以..
y= makeMove(0);
或
int x=0;
y=makeMove(x);
同样要从Integer转换为Character,您可以使用...
String conversion;
conversion = Integer.toString(42);
字符串变量不是一个字符变量,但是它可以让你到达一半。
答案 1 :(得分:0)
我认为你搞砸了括号和其他一些语法。您正在尝试在main中定义一个函数。你不能这样做。因为你从不使用它,所以你也不应该通过x。让我们一步一步走。
public static makeMove(int x) {
你只能在return语句之后使用它,这是不允许的,因为你在return语句之后永远不会执行任何操作。您应该将功能更改为
public static makeMove() {
接下来让我们来看看你的while循环
do
{
System.out.print("please enter a number 1-9 " + i);
i = keyboard.nextInt();
if (i < 0 || i > 9 ) {
System.out.println("Not a valid selection. Please Re-enter: ");
}
}
while (i < 0 || i > 9 );
从逻辑来看,你似乎想接受0-9。我会把它改成
do
{
System.out.print("please enter a number 0-9 ");
i = keyboard.nextInt();
if (i < 0 || i > 9 ) {
System.out.println("Not a valid selection. Please Re-enter: ");
}
}
while (i < 0 || i > 9 );
根据我之前提到的,你应该在返回
后删除x的赋值return i;
}
所以最终的代码如下:
import java.lang.System.*;
public class Run {
public static int makeMove() {
java.util.Scanner keyboard = new java.util.Scanner(System.in);
int i = 0;
do
{
System.out.print("please enter a number 0-9 ");
i = keyboard.nextInt();
if (i < 0 || i > 9 ) {
System.out.println("Not a valid selection. Please Re-enter: ");
}
}
while (i < 0 || i > 9 );
return i;
}
public static void main (String args[]) {
int y;
y = makeMove();
System.out.println(y);
}
}