【问题标题】:Simple calling method in javajava中的简单调用方法
【发布时间】:2015-10-15 16:07:20
【问题描述】:

我通常会尝试学习调用方法并想知道为什么这个简单的练习不起作用..(也有兴趣知道我是否可以在这一切结束时将生成的 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;
    }
}

【问题讨论】:

  • 你没有在方法调用中指定参数类型,只在签名中指定。此外,您的 makeMove 方法在其签名中需要返回类型。是的,char 和 int 在 java 中是可以互换的。
  • 1>你没有声明 x 2>y = makeMove(x);它不应该是 y = makeMove(int x); 3>return 应该是最后一个语句。你写了 int x = i;返回 i 后;这是不正确的 4>u 两次声明 x。这是不允许的。5>它应该是 public static int makeMove(int x) 你错过了方法签名中的返回类型 int 6> } main 方法中缺少大括号

标签: java methods return calling-convention


【解决方案1】:

你不能在函数调用中声明变量

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);

还可以使用从整数转换为字符...

String conversion;
conversion = Integer.toString(42);

字符串变量不是字符变量,但它能让你走到一半。

【讨论】:

    【解决方案2】:

    我认为您弄乱了括号和其他一些语法。您正在尝试在 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);
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-06
      • 1970-01-01
      • 1970-01-01
      • 2017-10-19
      • 2013-03-29
      • 1970-01-01
      相关资源
      最近更新 更多