当我调用方法f()时,控制台中没有任何内容。为什么呢?

时间:2015-06-23 17:36:41

标签: java

package Evaluare1;

import java.util.*;

public class e15 {

    public static void main(String[]args){

        Scanner s = new Scanner(System.in);

        int a = s.nextInt();

        f(a);
        //i don't have errors when i run it
        }

    //this method won't return the value when i call it

    public static int f(int x){
        if(x%2 <= 0){
            return x/2;
        }else   
            return x * 3 + 1;
    }
}

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

如果你想要做的是打印f()的结果而不是简单地调用该函数,因为所做的就是返回你忽略的结果。而是尝试这样的事情:

import java.util.*;
public class e15 {

    public static void main(String[]args){

        Scanner s = new Scanner(System.in);

        int a = s.nextInt();

        System.out.println(f(a));
        //i don't have errors when i run it
    }

    //this method won't return the value when i call it

    public static int f(int x){
        if(x%2 <= 0){
            return x/2;
        }
        else
            return x * 3 + 1;
    }
}

请注意System.out.println(f(a));。这会将您的结果打印到标准输出,通常是您的shell。

答案 1 :(得分:0)

添加System.out.println()以在控制台上打印。

答案 2 :(得分:0)

如果您正在尝试学习java,请尝试使用PrintStream.class中的不同方法

例如,

public class e15 {
  public static void main(String[]args){

        Scanner s = new Scanner(System.in);

        int a = s.nextInt();

        System.out.print(f(a));
        //i don't have errors when i run it
        }

    //this method won't return the value when i call it

    public static int f(int x){
        if(x%2 <= 0){
            return x/2;
        }else   
            return x * 3 + 1;
    }}

在这里我使用了PrintStream类中的print函数,它打印了特定的整数(重载方法),你也可以使用printf,你想在没有连接的情况下将值插入字符串的确切位置,对于像这样的数字,使用%s作为字符串%d。

println的优点是它可以在新行中打印。

玩它会很有趣。