我正在学习施工人员 当我尝试编译以下代码时,我得到错误“变量输入和形状未初始化。”
有谁可以告诉我为什么以及如何解决它?
public class Try {
public static void main(String[] args)
{
String input;//user key in the height and width
int shape;//triangle or square
Count gen = new Count(input , shape);//is this the right way to code?
gen.solve();
}
}
public class Count {
public Count(String inp, int shp) {
String input_value = inp;
shape_type = shp;
}
public void solve () {
if shape_type==3{
//count the triangle
}
else if shape_type==4{
//count the square
}
}
}
答案 0 :(得分:1)
在尝试使用之前,您尚未提供shape
或input
值。要么你现在可以给它们虚拟值,比如
String input = "test";
int shape = 3;
或者从用户那里获取字符串和整数;在这种情况下,您可能需要了解如何使用Scanner。
保留没有值的输入和形状,位于:
String input;
int shape;
他们未初始化,因此Java不知道他们的价值究竟是什么。
答案 1 :(得分:1)
我认为这是某种功课。我冒昧地重新格式化并修改了一些代码。
您必须初始化要使用的任何变量。唯一的例外是当您使用类成员时(这些成员会自动初始化为某个默认值)。请参阅下文,Count
类的成员未明确初始化。
这是一些有效的代码。另请注意,我稍微更改了一下求解方法(if
块应该在表达式周围有()
。但是你要做的事情通常是使用switch
块做得更好如下所示。我还在Count
类中声明了两个成员,以便记住构造时提供的值,以便在调用solve()
方法时能够使用它们。
public class Try {
public static void main(String[] args) {
String input = null; //user key in the height and width
int shape = 0; //triangle or square
Count gen = new Count(input, shape);//is this the right way to code?
gen.solve();
}
}
class Count {
String input_value;
int shape_type;
public Count(String inp, int shp) {
this.input_value = inp;
this.shape_type = shp;
}
public void solve() {
switch (this.shape_type) {
case 3:
// count the triangle
break;
case 4:
// count the square
break;
}
}
}
正确格式化代码通常有助于:)。