Java Hub

Hi I'm learning java. Can someone please tell me why my array is not storing values outside the loop.

In following code I'm trying to conver decimal to binary but if i pront inside the loop I'm getting my desired output bur if i try outside the while loop I'm not getting the same ouput I'm just getting zero which means my array is not storing values outside while loop. So why my question is why??

import java.util.Scanner;

public class decToBin {
    public static void main(String[] args){
        Scanner scn = new Scanner(System.in);
        int a = scn.nextInt();
        int arr[]= new int[100];
        int count=0;
        while(a!=1) {
            a = a/2;
            for (int j = 0; a / 2 != 1 || a / 2 != 0; j++) {
                if (a % 2 == 0) {
                    arr[j] = 0;
                    System.out.print(arr[j]);
                    count++;
                    break;
                } else if (a % 2 == 1) {
                    arr[j] = 1;
                    System.out.print(arr[j]);
                    count++;
                    break;
                }
            }
        }
        System.out.println("\n"+arr[2]);
    }
}
1      Reply

Could be because you are printing arr[2] which is 0. You should be printing the all the numbers in array until count. Or best way would be to just use one single integer value to store result instead of using an array. You can try this :)

Reply
Super friendly <br/>code & developer communities

Super friendly
code & developer communities

A place for coders and developers to share, learn and grow together.