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
Get step-by-step solutions from verified subject matter experts
