Java编程-帮助初始化(地毯式)
我已经开始学习Java编程,在做一个辅助时遇到了一个问题: ps这是一个c编程任务,使用它进行java编程: 考虑一个(潜在的大型商业)房间,其地板尺寸为长度len和宽度wid。地板面积由len乘以wid得出 地毯砖作为单独的正方形(2英尺乘2英尺)提供。编写、编译并运行一个C程序,fummer.C -计算从终端输入尺寸(len和wid)(测量单位为英寸)的房间所需的最小地毯铺数。注意:地板砖可以切割成适合房间边缘的形状-尽量减少浪费 -计算需要多少地毯瓷砖包。供应商仅提供十块一包的地毯砖(即单个瓷砖不能单独购买) -计算购买最小数量的包装后剩余的备用瓷砖数量 -将所有这些结果连同订单的总成本一起打印在一个整洁的表格中。(一包瓷砖前四包每包售价50美元,后续每包价格降至45美元。) 仔细考虑如何测试您的程序?这些计算非常繁琐,很容易出错。如果你的程序不起作用,那么你会浪费公司很多钱,你可能会失去提供软件的合同 你应该写一些测试用例(手工)来涵盖可能发生的所有不同的可能性。别忘了考虑各种边界情况——这些通常是检测错误的地方。 到目前为止,我已经做了:Java编程-帮助初始化(地毯式),java,Java,我已经开始学习Java编程,在做一个辅助时遇到了一个问题: ps这是一个c编程任务,使用它进行java编程: 考虑一个(潜在的大型商业)房间,其地板尺寸为长度len和宽度wid。地板面积由len乘以wid得出 地毯砖作为单独的正方形(2英尺乘2英尺)提供。编写、编译并运行一个C程序,fummer.C -计算从终端输入尺寸(len和wid)(测量单位为英寸)的房间所需的最小地毯铺数。注意:地板砖可以切割成适合房间边缘的形状-尽量减少浪费 -计算需要多少地毯瓷砖包。供应商仅提供十块一包的地毯砖(即单
import java.util.Scanner;
public class carpet {
public static void main (String args[]){
Scanner scanf = new Scanner (System.in);
float len, wid;
float area;
int roundTiles;
int roundPacks;
float tarea;
float tpack;
float NoOfTiles;
float NoOfPacks;
float tspares1;
float tspares2;
int packCost;
int cost;
tarea= 12* 12;
tpack= 10;
System.out.format("Enter the length of the room, Inches: ");
len = scanf.nextFloat();
System.out.format("Enter the width of the room, Inches: ");
wid = scanf.nextFloat();
area = len * wid;
NoOfTiles = area/ tarea;
NoOfPacks = NoOfTiles/tpack;
roundTiles = (int) Math.ceil(NoOfTiles);
roundPacks = (int) Math.ceil(NoOfPacks);
tspares1 = roundPacks * 10;
tspares2 = tspares1 - roundTiles;
if (roundPacks <= 4)
packCost =50;
else if(roundPacks > 4)
{
packCost = 45;
packCost = packCost + 20; *<<-----******LINE 50-----*********
}
cost =roundPacks * packCost; *<<*******---ERROR-------------*********
System.out.println(cost);
}
}
import java.util.Scanner;
公共级地毯{
公共静态void main(字符串参数[]){
Scanner scanf=新扫描仪(System.in);
浮动长度,宽度;
漂浮区;
圆形瓷砖;
int圆形包装;
浮跗;
浮动包装;
浮面;
浮面背包;
浮点数1;
浮动tspares2;
国际邮递公司;
国际成本;
跗骨=12*12;
t包装=10;
System.out.format(“输入房间的长度,英寸:”);
len=scanf.nextFloat();
System.out.format(“输入房间的宽度,英寸:”);
wid=scanf.nextFloat();
面积=长*宽;
NoOfTiles=面积/面积;
NoOfPacks=NoOfTiles/t包装;
roundTiles=(int)Math.ceil(NoOfTiles);
roundPacks=(int)Math.ceil(NoOfPacks);
tspares1=圆形包装*10;
tspares2=tspares1-圆形瓷砖;
if(圆形包装4)
{
packCost=45;
packCost=packCost+20;*您需要初始化packetCost
:
int packCost = 0;
您需要初始化packetCost
:
int packCost = 0;
您需要通过替换当前行来初始化变量packCost:
int packCost;
借
您正在条件语句中初始化packCost变量,编译器没有足够的智能来检测它。您需要通过替换当前行来初始化变量packCost:
int packCost;
借
您正在条件语句中初始化packCost变量,而编译器没有足够的智能来检测它。在Java中,需要初始化局部变量。如果这是字段变量,则它将具有隐式默认值0(零)
这里有一个链接解释了这一点:(免责声明:不是我的页面)
从本页:
- 字段变量(类成员)自动初始化为默认值
- 局部变量(方法或构造函数变量)不会自动初始化
在Java中,需要初始化局部变量。如果这是一个字段变量,它将具有隐式默认值0(零)
这里有一个链接解释了这一点:(免责声明:不是我的页面)
从本页:
- 字段变量(类成员)自动初始化为默认值
- 局部变量(方法或构造函数变量)不会自动初始化
使用else而不是else if可以让编译器清楚地知道将执行其中一个条件,因此packCost始终设置为:
if (roundPacks <= 4)
packCost = 50;
else
{
packCost = 45;
packCost = packCost + 20;
}
if(roundPacks使用else而不是else-if向编译器表明将执行其中一个条件,因此packCost始终设置为:
if (roundPacks <= 4)
packCost = 50;
else
{
packCost = 45;
packCost = packCost + 20;
}
if(roundPacks+1个好捕获,表示if/else if真的应该是if/else+1个好捕获,表示if/else if真的应该是if/else