Вот моя функция, которая должна принимать значения из «in1.txt» и выводить их в «out1.txt» с описанием, если они простые или нет.Как добавить дополнительные значения в мой вывод?
Код:
import java.util.Scanner;
import java.util.ArrayList;
import java.io.File;
import java.io.PrintWriter;
public class task1
{
public static boolean isPrime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i < Math.sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
public static ArrayList<String> check_primes(String in_file, String out_file)
{
File temp = new File(in_file);
Scanner input_file;
String filename = "out1.txt";
PrintWriter out = null;
try
{
input_file = new Scanner(temp);
out = new PrintWriter(filename);
}
catch (Exception e)
{
System.out.printf("Failed to open file %s\n",in_file);
return null;
}
ArrayList<String> result = new ArrayList<String>();
while(input_file.hasNextLine())
{
String line = input_file.nextLine();
result.add(line);
for(int i = 0; i<result.size();i++)
{
String x = result.get(i);
int xx = Integer.parseInt(x);
if(isPrime(xx))
{
out.printf(xx + " is a prime\r\n");
}
else
{
out.printf(xx + " is not a prime\r\n");
}
}
out.close();
}
input_file.close();
return result;
}
public static void main(String[] args)
{
check_primes("in1.txt", "out1.txt");
System.out.printf("Exiting...\n");
}
}
это только добавляет первое значение файла INT1, и я предполагаю, что это какая-то ошибка петли или, что я что-то в моем цикле отсутствует. я проверил, была ли ошибка с «x» или «xx» и распечаталась, и x будет распечатываться как [7] [7, 10] [7, 10, 13] и т.д., образуя пирамиду, а xx печатается аналогично 7 \ n 7 \ n 10 \ n 7 \ n 10 \ n 13 \ n Может кто-нибудь поможет мне выяснить, где проблема?
считает не закрывая выход в петле :) – zapl
@zapl +1 для пятнистости основного вопроса, но, даже если выход в цикле не закрыт, вы не думаете, что цикл возобновляются каждым время добавляется новая строка к результатам? – Raf