我是java编程的新手,我在从另一个类返回一个方法时遇到了麻烦。这两个类都成功编译和运行。我可以从其中一个类调用一个简单的int,但是当我想计算用户输入的两个输入整数时,我只得到一个空格。
这是我的计算类
class calculations {
public final int AGE = 53;
public int numbers(int num1, int num2) {
return num1 + num2;
}
}
这是我的用户类。我可以打印AGE
变量,但numbers()
方法不返回值。这只是一个空白区域。
import java.util.Scanner;
class user {
static Scanner input = new Scanner(System.in);
public static void main(String args[]) {
int i1, i2;
System.out.println("Enter int1: ");
i1 = input.nextInt();
System.out.println("Enter int2: ");
i2 = input.nextInt();
calculations kjc = new calculations();
System.out.printf("Age = " + kjc.AGE);
System.out.printf("\nints: " , i1, i2, kjc.numbers(i1, i2));
}
}
如果有人能解释为什么System.out.printf("\nints: " , i1, i2, kjc.numbers(i1, i2));
不会打印出两个输入整数的计算结果。
答案 0 :(得分:5)
您正在使用printf,但您没有格式说明符。
试试这个
System.out.printf("\nints: %d, %d, %d" , i1, i2, kjc.numbers ( i1,i2 ));
基本上,第一个字符串之后的每个参数都按顺序匹配到每个格式说明符。 %d
是十进制整数的格式说明符
答案 1 :(得分:1)
为简单起见,您还可以使用以下方式进行打印:
System.out.println("\nints: ,"+ i1 +", "+i2+","+ kjc.numbers()");
答案 2 :(得分:0)
顺便说一下,您也可以使用String.format
功能。
String str = String.format("I was born in %d", 2015);
System.out.println(str);