Your code has few errors. From
Usage: java Phone
it looks like expected content of args
array should be "Phone"
<name>
which are two elements so
if(args.length != 1)
is not valid condition. You probably should replace it with
if (args.length < 2)
Other problem is that <name>
is second element in args
array stored in args[1]
so
if(numbers[i][0].equals(args[0]))
should be
if(numbers[i][0].equals(args[1])) //we want to compare name, not "Phone" string
Last problems involve
if (i == numbers.length);
System.out.println("Name not found.");
-
inside for loop
i
will never be equalnumber.length
becausefor (i = 0; i < numbers.length; i++)
loop iterates only ifi<number.length
. So this condition should be replaced withif (i == numbers.length -1)
-
there is semicolon right after this condition which represents empty instruction, which means that
if (i == numbers.length - 1); System.out.println("Name not found.");
is essentially same as
if (i == numbers.length - 1) ; System.out.println("Name not found.");
which means that execution of
System.out.println("Name not found.");
doesn’t depend on result ofif
condition.To solve this problem simply remove this additional
;
, and to avoid this problem always surround code which should depend ofif
else
for
while
inside blocks{...}
.
5
solved I couldn’t make this programm run as I wanted