Java

  • Thread starter Thread starter ROAD_DOGG33J
  • 9 comments
  • 711 views

ROAD_DOGG33J

Premium
Messages
14,667
United States
IL, USA
Messages
holyc0w1
Messages
holyc0w
I just started computer programming in high school.
Are there any tips or hints, maybe a site I should go to?

I would also appreciate it if I could contact someone if I am having trouble.
 
class eight {
public static void main(String args[]) {

double base = 32000.0;
double sales = Double.parseDouble(args[0]);
double bonus;
int salesbonus = Integer.parseInt(args[1]);


switch (salesbonus) {
case 1: bonus=(sales*(10/100));
case 2: bonus=(sales*(15/100));
case 3: bonus=(sales*(20/100));
case 4: bonus=(sales*(25/100)); }

if (sales < 100000)
System.out.println("Pay:"+ base);
else if ((sales > 100000) && (sales <= 200000))
System.out.println("Pay:"+ (base+bonus));
else if ((sales > 200000) && (sales <= 500000))
System.out.println("Pay:"+ (base+bonus));
else if (sales > 500000)
System.out.println("Pay:"+ (base+bonus));


}
}

________________________________________________________________

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

double base = 32000.0;
double sales = Double.parseDouble(args[0]);
double bonus;
int salesbonus = Integer.parseInt(args[1]);
double pay;
double a=(sales*(10/100));
double b=(sales*(15/100));
double c=(sales*(20/100));
double d=(sales*(25/100));
double pay=(base+bonus);

switch (salesbonus) {
case 1: bonus=a;
case 2: bonus=b;
case 3: bonus=c;
case 4: bonus=d;
default: bonus=0; }

if ((sales < 100000))
{System.out.println("Pay:"+ base);}
else if ((sales > 100000) && (sales <= 200000))
System.out.println("Pay:"+ (pay));
else if ((sales > 200000) && (sales <= 500000))
System.out.println("Pay:"+ (pay));
else if (sales > 500000)
System.out.println("Pay:"+ (pay));



}
}


On the first version it says that "bonus" might not have been initialized. The second version has more variables and it goes through, because of the default case.
 
^^ We resolved this issue on AIM. Every case needs a break.

EDIT: working code:

Code:
class eight {
	public static void main(String args[]) {

		double base = 32000.0;
		double sales = Double.parseDouble(args[0]);
		double bonus=0;
		int salesbonus = Integer.parseInt(args[1]);


		switch (salesbonus) {
			case 1:
				bonus=(sales*(10/100.0));
				break;
			case 2:
				bonus=(sales*(15/100.0));
				break;
			case 3:
				bonus=(sales*(20/100.0));
				break;
			case 4:
				bonus=(sales*(25/100.0));
				break;
		}

		if (sales <= 100000)
			System.out.println("Pay:"+ base);
		else if ((sales > 100000) && (sales <= 200000))
			System.out.println("Pay:"+ (base+bonus));
		else if ((sales > 200000) && (sales <= 500000))
			System.out.println("Pay:"+ (base+bonus));
		else if (sales > 500000)
			System.out.println("Pay:"+ (base+bonus));
		else ;


	}
}
 
class Triangle {

private double side1;
private double side2;
private double side3;
private double s;

double area() {

s = ((side1+side2+side3)/2);
return Math.sqrt(s*(s-side1)*(s-side2)*(s-side3));
}

void setsides (double aside1, double aside2, double aside3) {
side1 = aside1;
side2 = aside2;
side3 = aside3;
}
}

class TriangleArea {
public static void main(String args[]) {
Triangle myTriangle1 = new Triangle();
myTriangle1.setsides(Integer.parseInt(args[0]),Integer.parseInt(args[1]),Integer.parseInt(args[2]));


System.out.println("Triangle #1 has an area of "+ myTriangle1.area());

}
}


That is basically the program.

I want to add something like this:
if ((side1 > 0) && (side2 > 0) && (side3 > 0)) {
if ((side1+side2 > side3) && (side2+side3 > side1) && (side3+side1 > side2)) {

so the program knows when it's a triangle and when it isn't, but I don't know where(or how) to add this??
 
A side quiz on Java, can anyone explain (really well please) how to round floats in Java using Big Decimal or any alternate solution that's available. Having a slight problem with this at the moment.
 
For ROAD_DOGG33J

class Triangle {

private double side1;
private double side2;
private double side3;
private double s;

double area() {

s = ((side1+side2+side3)/2);
return Math.sqrt(s*(s-side1)*(s-side2)*(s-side3));
}

boolean isTriangle() {
if ((side1 > 0) && (side2 > 0) && (side3 > 0)) {
if ((side1+side2 > side3) && (side2+side3 > side1) && (side3+side1 > side2)) return true;
}
return false;
}


void setsides (double aside1, double aside2, double aside3) {
side1 = aside1;
side2 = aside2;
side3 = aside3;
}
}

class TriangleArea {
public static void main(String args[]) {
Triangle myTriangle1 = new Triangle();
myTriangle1.setsides(Integer.parseInt(args[0]),Integer.parseInt(args[1]),Integer.parseInt(args[2]));


System.out.println("Triangle #1 has an area of "+ myTriangle1.area());
System.out.println("triangle #1 is a triangle:"+((myTriangle1.isTriangle())?("yes"):("no")));

}
}


Bold stuff is the new code. Sorry about formatting.
 
donbenni
A side quiz on Java, can anyone explain (really well please) how to round floats in Java using Big Decimal or any alternate solution that's available. Having a slight problem with this at the moment.
Math.round(float...) will round to the nearest whole number. So if you want, say 2 decimal places, then multiply by 10^2 before rounding and divide by 10^2 after rounding. As in:
//x=13.257
y = Math.round(13.257*100.0)/100.0
//now y=13.26
Not sure if this is what you are asking, but hope it helps.
 
Yeah that's cool. Seen that method around a few times, good to know that it's correct. Just wondering if anyone knew much about Big Decimal, but your method is good enough for now. Cheers 👍
 
Back