Не выполняются условия 3 и 4. Хотя выводит правильный ответ. В конце приписал еще 1 решение, результат тот же. Я что то упускаю? И не совсем понятно описание пунктов 3 и 4. В задаче написано - Узнай, какая строка в списке встретится раньше: самая короткая или самая длинная.
а в пунктах 3 и 4 - Программа должна выводить на экран самую короткую строку, если она была раньше самой длинной.
Программа должна выводить на экран самую длинную строку, если она была раньше самой короткой.
но о смене переменных и речи нет, что значит была раньше самой длинной?
public class Solution {
public static void main(String[] args) throws Exception {
//написать список строк
// найти минимальное и максимальные числа строк
// вывести на экран первое из них через else else if
ArrayList <String> name = new ArrayList <String>();
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
for (int i = 0; i < 10; i++)
{
name.add (reader.readLine());//напишите тут ваш код
}
int min = name.get(0).length();
int max = name.get(0).length();
int x1 = 0;
int x2= 0;
for (int z = 0; z<10; z++)
{
if (name.get(z).length()>z)
{
max = name.get(z).length();
x1 = z;
}
}
for (int c = 0; c <10; c++)
{
if (name.get(c).length()<c)
{
min = name.get(c).length();
x2 = c;
}
}
if ( x1 < x2) //осталось вывести на экран первое из совпадений.
{
System.out.println(name.get(x1));
}
if (x2<x1)
{
System.out.println(name.get(x2));
}
}
}
второе решение пункта 3 и 4. результат тот же.
int n = 0;
while (n < 10)
{
n++;
if(n==x1)
{
System.out.println(name.get(n));
break;
}
if (n==x2)
{
System.out.println(name.get(n));
break;
}
}
package com.javarush.task.task07.task0712;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
/*
Самые-самые
*/
public class Solution {
public static void main(String[] args) throws Exception {
//написать список строк
// найти минимальное и максимальные числа строк
// вывести на экран первое из них через else else if
ArrayList <String> name = new ArrayList <String>();
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
for (int i = 0; i < 10; i++)
{
name.add (reader.readLine());//напишите тут ваш код
}
int min = name.get(0).length();
int max = name.get(0).length();
int x1 = 0;
int x2= 0;
for (int z = 0; z<10; z++)
{
if (name.get(z).length()>z)
{
max = name.get(z).length();
x1 = z;
}
}
for (int c = 0; c <10; c++)
{
if (name.get(c).length()<c)
{
min = name.get(c).length();
x2 = c;
}
}
if ( x1 < x2) //осталось вывести на экран первое из совпадений.
{
System.out.println(name.get(x1));
}
if (x2<x1)
{
System.out.println(name.get(x2));
}
}
}