Hi all. I have to write a java program that allows a user to enter an octal digit and output the binary equivalent for as many numbers as the person wishes using a direct access method.
The error is that even though it compiles, it loops the binary equivalent. The code goes as follows:
import java.util.Scanner; // initialize scanner class for input
public class Arrays
public static void main(String args)
int num = 0;
// declare array to hold 7 octal numbers and convert to binary numbers
Scanner input = new Scanner(System.in);
System.out.println("Octal to Binary Conversion");
System.out.println("Enter the Octal Number: ");
OctalNum = input.nextLine();
// make a loop to read as many numbers as the input octal has
for (i=0; i < OctalNum.length(); i++)
//read string by character then convert to an integer
c = OctalNum.charAt(0);
for (j=1; j < c; j++)
//convert character to integer (ex: "1" to 1)
n = Character.getNumericValue(c);
binaryArray = "000";
binaryArray = "001";
binaryArray = "010";
binaryArray = "011";
binaryArray = "100";
binaryArray = "101";
binaryArray = "111";
System.out.println(OctalNum+ " converted to binary is "+ binaryArray[n]);
System.out.println( "Not a valid octal number!");
// prompt for input more OctalNum
System.out.print("Do you want to enter another Octal number? ");
System.out.println("Y for yes or N for No: ");
String str= input.next(); //Read next char
repeat= str.charAt(0); //Get the first char
while(repeat=='Y' || repeat=='y');
James E Baker
Joined: Jul 28, 2011
First... to save you some grief when posting, make sure to use "code" button when posting code on the forum to make it easier to read and reply to.
I'm not 100% sure I know exactly how you want your output to look, but I have four suggestions for you to try.
1. At the beginning, you have the line "int num = 0;" for no apparent reason. It is never used in your code.
2. You have a line "c = OctalNum.charAt(0); " which I think you should change to "c = OctalNum.charAt(i); "
3. What is the "for (j=1; j < c; j++) " about? I would completely delete that from your code. It doesn't seem to serve a purpose and "c" is a char value not an int.
4. Change your output to "System.out.println(n+ " converted to binary is "+ binaryArray[n]); "
Below shows the changes I made....
My output is....
Octal to Binary Conversion
Enter the Octal Number:
0 converted to binary is 000
1 converted to binary is 001
2 converted to binary is 010
3 converted to binary is 011
Do you want to enter another Octal number? Y for yes or N for No: