メイン メソッドが 100% 正常に動作するようには見えません。それは良いですが、ループの問題を修正する必要があります。
私の主な目標は、ユーザーが1以上の数字を入力するとプログラムにメソッドpathCalc()を繰り返しさせ、0を入力するとプログラムを終了させることでした。ただし、ユーザーが1以上を入力してプログラムを繰り返すと、プログラムは繰り返されますが、繰り返すか再度終了するかをユーザーに尋ねるところまで来て、ユーザーが終了するために 0 を入力すると、プログラムは終了する代わりにメソッド pathCalc() を繰り返します。
ユーザーが>= 1を入力してメソッドを繰り返すか、0を入力して終了するように、メソッドを繰り返した後にこれを機能させるにはどうすればよいですか?
import java.util.Scanner;
public class AssignmentArrays{
static int[] data = new int [6];
public static void getIDs(){
Scanner seg = new Scanner(System.in);
int[] data = new int [6];
data[0] = 0;
data[1] = 0;
data[2] = 0;
data[3] = 0;
data[4] = 0;
data[5] = 0;
/* Segment values */
System.out.println("Enter cost for segment 0:");
data[0] = seg.nextInt();
System.out.println("Enter cost for segment 1:");
data[1] = seg.nextInt();
System.out.println("Enter cost for segment 2::");
data[2] = seg.nextInt();
System.out.println("Enter cost for segment 3:");
data[3] = seg.nextInt();
System.out.println("Enter cost for segment 4:");
data[4] = seg.nextInt();
System.out.println("Enter cost for segment 5:");
data[5] = seg.nextInt();
}
public static void pathCalc(){
/* Path inputs */
Scanner node1 = new Scanner(System.in);
int pathCost;
System.out.println("Enter ID of segment 0 of path:");
int node1value = node1.nextInt();
System.out.println("Enter ID of segment 1 of path:");
int node2value = node1.nextInt();
System.out.println("Enter ID of segment 2 of path:");
int node3value = node1.nextInt();
/* Path cost calculation */
pathCost = data[node1value] + data[node2value] + data[node3value];
System.out.println("The cost of the trip is: $" + pathCost);
}
public static void main(String[] args){
getIDs();
pathCalc();
System.out.println("Enter 0 to exit or any other number"+
" to evaluate another path:");
int choice;
choice = end.nextInt();
while(choice != 0){
getIDs();
pathCalc();
System.out.println("Enter 0 to exit or any other number"+
" to evaluate another path:");
choice = end.nextInt();
}
}
}