*Это 26-й день моего участия в августовском испытании обновлений. Узнайте подробности события:Испытание августовского обновления
Концептуальная разница заключается в следующем:
print отображает свои аргументы в командном окне и позиционирует выходной курсор после последнего отображаемого символа.
println отображает свои аргументы в командном окне с завершающей новой строкой, чтобы поместить курсор вывода в начало следующей строки. \
printf — это форма форматированного вывода.
\
Например, код выглядит следующим образом:
package other;
public class TestPrint {
public static void main(String[] args) {
int i = 4;
double j = 5;
System.out.print("Печать i: "+ i);
System.out.println("Используйте println для вывода i: "+ i);
System.out.printf("Значение i равно %d, значение j равно %f", i,j);
}
}\
\
Результат бега есть
используйте print для вывода i:4 используйте println для вывода i:4
Значение i равно 4, а значение j равно 5.000000\
Видно, что после вывода i с помощью print разрыва строки нет, а вывод результата с помощью println идет сразу после оператора вывода print, а строка разрывается после вывода println, поэтому при выводе с помощью printf он выводится на вторая линия. \
Сосредоточьтесь на printf здесь
«Значение i равно %d, а значение j равно %f». «%d» в строке стало значением i, а «%f» стало значением j!
Здесь «%d» означает заполнитель для значения int, «%f» означает заполнитель для значения типа double или float, а параметры этой переменной предоставляются позже. Обратите внимание, что фактические имена параметров должны быть в порядке. В противном случае это будет неправильно. И тип должен соответствовать. Если мы изменим выражение на System.out.printf("Значение i равно %d, значение j равно %f", j,i);//Позиции i и j меняются местами
В настоящее время возникает ошибка, поскольку параметр, соответствующий "%d", становится j, соответствующий параметр "%f" становится i, а j имеет значение double, что несовместимо с тем, что "%d" является целым числом. Значит что-то не так.
Также "%s" означает символ точки строкового значения. "%c" означает символ точки для символьного значения.
Может быть читатели спросят, почему вывод j стал 5.000000?Потому что у double по умолчанию 6 знаков после запятой (это может быть связано с системным компьютером, некоторые не 6 знаков), но если вы хотите вывести только два знака после запятой , ты не можешь? Конечно! Просто измените предложение, и все готово!
System.out.printf("Значение i равно %d, значение j равно %.2f", i,j);
Здесь "%.2f" означает вывод двух знаков после запятой. Если вы хотите вывести три бита, то "%.3f".
Сказав это, вы обнаружите, что printf также очень полезен. Это управляет форматом вывода. \
\
Также могут быть такие примеры:
public class TestPrint {
public static void main(String[] args) {
int i = 4;
double j = 5.000f;
System.out.printf("Значение i равно d,n", i);
}\
}
\
Текущий результат:
Значение i равно 00004,
Исходное «d» означает вывод 5 заполнителей.Если число меньше 5, левая сторона будет дополнена 0. \
Обратите внимание на разницу между %d и d здесь! ! !