CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com

# Thread: need help debugging simple, beginner program

1. Junior Member
Join Date
Mar 2011
Posts
9

## need help debugging simple, beginner program

I am supposed to answer the following question:

"The Fast Freight Shipping Company charges the following rates:

Weight of Package : Rate Per 500 Miles Shipped

2 Pounds or less : \$1.10

Over 2 pounds but no more than 6 Pounds :\$2.20

Over 6 pounds but no more than 10 pounds : \$3.70

Over 10 pounds :\$3.80

The shipping charges per 500 miles are not prorated. For example, if a 2 pound package is shipped 550 miles, the charges would be \$2.20. Write a program that asks the user to enter the weight of a package and then displays the shipping charges. "

ps. i also have the user enter the miles and calculate that as well, here is what i have so far, i think i'm done except i'm getting some error and other thing

Code:
``` import javax.swing.JOptionPane;
import java.text.DecimalFormat;
public class shipping
{ public static void main (String [] s)

{
String input;
int distance;
int distanceMultiplier = (distance / 500);
int distanceRemainder = (distance % 500);
double weight;
double total;
double rate;
DecimalFormat df = new DecimalFormat("#,##0.00");

input = JOptionPane.showInputDialog ("Enter the weight of the package in pounds");
weight = Double.parseDouble(input);

input = JOptionPane.showInputDialog ("Enter the distance the package will travel in miles");
distance = Integer.parseInt(input);

if (weight <= 2.0)
rate = 1.1;
else if (weight <= 6.0)
rate = 2.2;
else if (weight <= 10.0)
rate = 3.7;
else
rate = 3.8;

if (distanceRemainder == 0)
total = rate * distanceMultiplier;
else if (distanceRemainder != 0)
total = rate * (distanceMultiplier + 1);

JOptionPane.showMessageDialog (null, "Your shipping charges are \$"  + df.format(total));

System.exit(0);```
after i do all of this i get a "variable distance might not have been initialized" and "variable total might not have been initialized"

i tried initializing them by making them equal to 0 but when i run the program my final message dialog always comes up as \$0.00

does anyone know what i'm doing wrong?

thanks

2. Elite Member Power Poster
Join Date
Aug 1999
Location
UK
Posts
10,163

## Re: need help debugging simple, beginner program

For some reason, you calculate the distanceMultiplier and distanceRemainder before you ask for a distance value. I suggest you calculate distanceMultiplier and distanceRemainder after you have obtained a distance value to use.

The error message about initialization appears because the compiler checks to see that all variables have a value before they are used. If a variable is only initialized inside an 'if' block, the compiler can't be sure it will have a value. Your 'if' block for the distanceRemainder check doesn't need an 'else if...' condition, you can use just an 'else', which will have the same result and will avoid the initialization error for 'total':
Code:
```if (distanceRemainder == 0) {
total = rate * distanceMultiplier;
}
else  {
total = rate * (distanceMultiplier + 1);
}```
The purpose of computing is insight, not numbers...
R. Hamming

3. Junior Member
Join Date
Mar 2011
Posts
9

## Re: need help debugging simple, beginner program

omg, dude

thanks a whole lot, i just figured the distance value would still be calculated since i assigned it in the beginning

and thanks for explaining the error message, i completely understand it now

while i was waiting for a response I actually was able to complete another program

i've changed my code and everything works great now, thanks again

#### Posting Permissions

• You may not post new threads
• You may not post replies
• You may not post attachments
• You may not edit your posts
•