Question: Is any one like to fix my while loop. Its not working right. when I called my method name decimalToBinary(input)) in the while loop its

Is any one like to fix my while loop. Its not working right. when I called my method name decimalToBinary(input)) in the while loop its giving me error like I need to change the int type to String. but I want the user to put an integer and get converted to binary. And the loop is not working properly or what I intended to do so please help!

import java.util.Scanner;

import structures.ArrayStack;

/**

* an interactive program which accepts a positive integer value

* from a user and then displays the binary equivalent of that value. The program should allow the user to

* repeat this process until the user chooses to quit.

* @author

*

*/

public class StackApps {

private static Scanner userInput;

public static void main(String[] args) {

boolean flag = false;

while (!flag) {

System.out.print("Please enter the Integer number to convert:(Enter x to exit): ");

Scanner userInput = new Scanner(System.in);

final String input = userInput.next();

while(!(input.equals("x"))){

int num2 = 0;

userInput = new Scanner(System.in);

try {

input = userInput.next();

num2 = Integer.parseInt(input);

} catch (NumberFormatException ex) {

System.out.println("Please enter only an integer number.");

}

if(num2 < 0) {

System.out.println("Please enter a postive number > 0." );

} else {

System.out.println(decimalToBinary(input));

}

System.out.println("Whould you like to continue? 'Y' or 'N'");

Scanner yesOrNo = new Scanner(System.in);

final String prompt = yesOrNo.next();

if ("Y".equals(prompt) || "y".equals(prompt)) {

flag = false;

} else if ("N".equals(prompt) || "n".equals(prompt)) {

System.out.println("Bye!");

flag = true;

} else {

System.out.println("Looks like you done "

+ " close the program.");

}

}

}

}

/**

*

* @param BinaryRep.

* @return string Binary Representation.

*/

public static String decimalToBinary(int num) {

String resultString = "";

final ArrayStack stack = new ArrayStack<>();

//int n = num;

int i = 0;

while (num > 0) {

stack.push(num % 2);

num = num / 2;

i++;

}

System.out.print(num + " in binary = ");

while (i > 0) {

//System.out.print(stack.pop());

resultString +=stack.pop();

i--;

}

return resultString;

}

}

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!