In: Computer Science
change the do while by using while or any other way
public void read_input(){
int x,y;
int pop;
Scanner sc = new Scanner(System.in);
do {
System.out.print("Enter X and Y for city 1: ");
x = sc.nextInt();
y = sc.nextInt();
} while ((x < 1 || x > 25) || (y < 1 || y > 25));
setCity1(x,y);
System.out.print("Enter population for city 1: ");
pop = sc.nextInt();
setPop1(pop*1000);
do {
System.out.print("Enter X and Y for city 2: ");
x = sc.nextInt();
y = sc.nextInt();
} while ((x < 1 || x > 25) || (y < 1 || y > 25));
setCity2(x,y);
System.out.print("Enter population for city 2: ");
pop = sc.nextInt();
setPop2(pop*1000);
do {
System.out.print("Enter X and Y for city 3: ");
x = sc.nextInt();
y = sc.nextInt();
} while ((x < 1 || x > 25) || (y < 1 || y > 25));
setCity3(x,y);
System.out.print("Enter population for city 3: ");
pop = sc.nextInt();
setPop3(pop*1000);
do {
System.out.print("Enter X and Y for city 4: ");
x = sc.nextInt();
y = sc.nextInt();
} while ((x < 1 || x > 25) || (y < 1 || y > 25));
setCity4(x,y);
System.out.print("Enter population for city 4: ");
pop = sc.nextInt();
setPop4(pop*1000);
}
import java.util.Scanner;
class State {
        private int cityX[], cityY[];
        private int pop[];
        private int plantx, planty;
        public State() {
                cityX = new int[4];
                cityY = new int[4];
                pop = new int[4];
        }
        public int getCityX(int index) {
                return cityX[index];
        }
        public int getCityY(int index) {
                return cityY[index];
        }
        public void setCity(int a, int b, int index) {
                cityX[index] = a;
                cityY[index] = b;
        }
        public void setPop(int a, int index) {
                pop[index] = a;
        }
        public int getPop(int index) {
                return pop[index];
        }
        public int getPlantX() {
                return plantx;
        }
        public int getPlantY() {
                return planty;
        }
        public void setPlantX(int a) {
                plantx = a;
        }
        public void setPlantY(int a) {
                planty = a;
        }
        public void read_input() {
                int x, y;
                int pop;
                Scanner sc = new Scanner(System.in);
                for (int i = 0; i < 4; i++) {
                        do {
                                System.out.print("Enter X and Y for city " + (i + 1) +": ");
                                x = sc.nextInt();
                                y = sc.nextInt();
                        } while ((x < 1 || x > 25 || y < 1 || y > 25));
                        setCity(x, y, i);
                        System.out.print("Enter population for city " + (i + 1) + ": ");
                        pop = sc.nextInt();
                        setPop(pop * 1000, i);
                }
        }
        public void calc_plant() {
                double min = 100000;
                for (int i = 1; i <= 25; i++) {
                        for (int j = 1; j <= 25; j++) {
                                if ((i == cityX[0] && j == cityY[0]) || 
                                                (i == cityX[1] && j == cityY[1]) || 
                                                (i == cityX[2] && j == cityY[2]) || 
                                                (i == cityX[3] && j == cityY[3]))
                                        continue;
                                double totalPopulation = 0;
                                double totalUnhappy = 0;
                                
                                for(int x=0; x<4; x++) {
                                        double dist = Math.hypot(i - cityX[x], j - cityY[x]);
                                        if (dist <= 2) {
                                                totalUnhappy += 10000000;
                                        } else {
                                                totalUnhappy += pop[x] / dist;
                                        }
                                        
                                        totalPopulation += pop[x];
                                }
                                
                                double unhappyRatio = totalUnhappy / totalPopulation;
                                if (unhappyRatio < min) {
                                        min = unhappyRatio;
                                        plantx = i;
                                        planty = j;
                                }
                        }
                }
        }
        public void display_map() {
                for (int i = 1; i <= 25; i++) {
                        for (int j = 1; j <= 25; j++) {
                                if (i == cityX[0] && j == cityY[0])
                                        System.out.print("C1");
                                else if (i == cityX[1] && j == cityY[1])
                                        System.out.print("C2");
                                else if (i == cityX[2] && j == cityY[2])
                                        System.out.print("C3");
                                else if (i == cityX[3] && j == cityY[3])
                                        System.out.print("C4");
                                else if (i == plantx && j == planty)
                                        System.out.print("PP");
                                else
                                        System.out.print("<>");
                        }
                        System.out.println();
                }
                System.out.println();
        }
}
public class StatePlant {
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                State s = new State();
                s.read_input();
                s.calc_plant();
                System.out.println("Locate the plan at : " + s.getPlantX() + " " + s.getPlantY());
                System.out.println("Enter 1 to view a Map of the scenario, or 0 to exit:");
                String inp = sc.nextLine();
                if (inp.charAt(0) == '1') {
                        s.display_map();
                }
                sc.close();
        }
}
************************************************** Thanks for your question. We try our best to help you with detailed answers, But in any case, if you need any modification or have a query/issue with respect to above answer, Please ask that in the comment section. We will surely try to address your query ASAP and resolve the issue.
Please consider providing a thumbs up to this question if it helps you. by Doing that, You will help other students, who are facing similar issue.