Hello 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, the answer (the binary number) continuously loops then it stops. 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;
String OctalNum;
// declare array to hold 7 octal numbers and convert to binary numbers
int i;
int j;
int n;
char c; //to hold each number of input octal
char repeat; //to hold yes or no
//for numbers 1 to 7, make a binary equivalent
String binaryArray[]={"000", "001", "010", "011", "100", "101", "110", "111"};
do
{
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);
if(n <8)
{
binaryArray[0] = "000";
binaryArray[1] = "001";
binaryArray[2] = "010";
binaryArray[3] = "011";
binaryArray[4] = "100";
binaryArray[5] = "101";
binaryArray[7] = "111";
System.out.println(OctalNum+ " converted to binary is "+ binaryArray[n]);
// System.out.println();
}//end if
else if(n>7)
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: ");
System.out.println();
String str= input.next(); //Read next char
repeat= str.charAt(0); //Get the first char
}
while(repeat=='Y' || repeat=='y');
}
}