java中的简单调用方法

时间:2015-07-24 21:05:10

标签: java methods return calling-convention

我一般都想学习调用方法,并想知道为什么这个简单的练习不起作用..(也有兴趣知道我是否可以在最后将一个生成的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;
    }
}

2 个答案:

答案 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);
    }

}