Приведение
int count = (int) 40.0; хранит целое число 40, а Console.WriteLine(count) пишет 40. Экран — одна строка. Точки на ней нет, и 0 после точки на ней тоже нет. Публичный класс оставьте с именем Pine.
Слово типа не совпадает с цифрами
Откройте файл Pine. Имя класса остаётся Pine. Эта страница тип не переименовывает. Удалите bool ripe, если эта строка ещё есть, вместе с true и false. Удалите string plant, если он ещё есть. Удалите plant.Length и каждую строку, которая задаёт вопрос после точки. Удалите любую строку ReadLine. Удалите int count = 40;, если в строке нет точки и нет скобок. В файле, который вы храните, нет ожидания, нет plant, нет ripe и нет слова true. Число пишет только строка вывода, которая использует имя.
Страница про числа уже показала несовпадение. int count = 40.0; просит имя int хранить число, записанное с точкой. build пишет ошибку. Он не молчит. Точку за вас не убирает. Пока пишется эта ошибка, экран читать не из чего. Эта страница так строку не оставляет. Слово типа int не совпадает с 40.0. Вы снова пишете то же слово типа, в скобках, между знаком = и цифрами.
В Main строка хранения — int count = (int) 40.0;. Первый int — слово типа для имени. Он говорит, что count хранит целое. count — имя, оно начинается с маленькой c. Знак = сохраняет. Затем (int) — снова слово типа, одно внутри одной пары скобок. Внутри этих скобок нет цифры. Значение снаружи, после закрывающей скобки: 40.0. 4 и 0 до точки — целая часть. Точка говорит, что есть ещё цифра. Эта цифра — 0. Точка с запятой завершает строку. Строка хранит 40. Экран она не пишет. Хранение — не вывод. До конца этой строки экран пуст. Скобки — не второе число. Не кавычки. Не вопрос после имени. На этой странице нет plant, поэтому точка в 40.0 — не точка, которая спрашивает Length.
Строка вывода — голое имя: Console.WriteLine(count);. Без кавычек и без скобок вокруг count. C# читает имя count, пишет целое, которое оно хранит, и завершает строку. В файле, который вы храните, это число 40. Буквы имени на экране нет. int на экране нет. Скобок на экране нет. Точки на экране нет. Того 0, что стояло после точки, на экране нет. Экран показывает 40, одну строку. Сохраните файл.
Файл, который вы храните
Держите такую учебную форму. Одно имя — count. Одно слово типа для него — int. Одна пара скобок, внутри только int. Одно значение 40.0 снаружи скобок. Одна строка вывода, и она использует голое имя.
using System;
public class Pine
{
public static void Main()
{
int count = (int) 40.0;
Console.WriteLine(count);
}
}
Читайте сверху. using System; готовит короткие имена. public class Pine именует тип. public static void Main() — место, где runtime начинает работу. Нет строки string plant и нет строки bool. int count = (int) 40.0; хранит 40. Ничего не пишет. Console.WriteLine(count); пишет 40 и завершает строку. На экране одна строка. Без точки. Без второй строки.
Запустите dotnet run. Программа пишет 40. Она не ждёт вашего ввода. Цифры уже были в файле. Если dotnet run ждёт, в файле ещё есть ReadLine. Удалите эту строку и оставьте int count = (int) 40.0; и одну строку вывода. Программа заканчивается после строки вывода. Экран показывает 40. Одна строка. Без точки. Если экран показывает 40.0, строка вывода печатает число с точкой, или скобок нет на той строке хранения, которую вы запустили. Файл, который вы храните, печатает count, а count хранит целое. Если экран показывает 40.9, вы печатаете число с точкой, а не целое после скобок. Если экран показывает 41, в файле хранится 41. Эти скобки не округляют 40.9 до 41. Если экран показывает true или false, ещё на месте булев файл. Удалите ripe. Если экран показывает leaf, в файле ещё есть plant. Если экран показывает count, вокруг имени в строке вывода стоят кавычки. Вы не переустанавливаете .NET SDK из‑за неверной строки на экране.
Экран с 40 сам по себе не доказывает скобки. int count = 40; без точки и без скобок тоже пишет 40. Экран может выглядеть так же. Файл — нет. В файле, который вы храните, есть (int) и 40.0. Оценивая эту страницу, ищите в файле скобки и точку. Не судите о скобках только по экрану.
Без скобок несовпадение по-прежнему ошибка. int count = 40.0; заставляет build писать ошибку. Он не пишет 40. Не молчит. Пока build пишет ошибку, программу не запускаете. Точный текст ошибки знать не обязательно. Поставьте (int) между = и 40.0, чтобы снова получилось int count = (int) 40.0;. Значение внутрь скобок не кладётся. int count = (int 40.0); заставляет build писать ошибку. Слово типа сидит внутри одно. Цифры снаружи, после закрывающей скобки.
Кавычки и слово true в эту пару скобок не входят. int count = (int) "40"; просит скобки превратить буквы в целое. build пишет ошибку. int count = (int) true; просит превратить слово true в целое. build пишет ошибку. Он не пишет 1. bool ripe = (bool) 1; просит другой тип превратить цифру в true. build пишет ошибку. Он не пишет true. Для ни одного из этих случаев экрана нет, потому что при ошибке build вы не запускаете программу. Удалите кавычки, удалите true и удалите булеву строку, когда чините файл, который храните.
Имя должно существовать до строки, которая его использует. Если Console.WriteLine(count); стоит выше int count = (int) 40.0;, build пишет ошибку. Перенесите строку хранения выше строки вывода. Не пишите int второй раз для того же имени. Второй int count под строкой, которая уже создала count, — другая ошибка. Второй файл на этой странице заменяет строку хранения. Он не добавляет ещё один int count под первым. int count = (int); с пустотой после скобок заставляет build писать ошибку. Значение должно стоять там. Пробел внутри скобок, int count = ( int ) 40.0;, всё ещё хранит 40, и одна эта форма не вызывает ошибку build. В файле, который вы храните, внутри скобок пробела нет. Без пробела после закрывающей скобки, int count = (int)40.0;, тоже хранит 40. В хранимом файле после скобки один пробел. Лишний пробел и отсутствие пробела — не второе число.
Цифры после точки отбрасываются
40.9 не хранится как 41 и не как 40.9, когда в скобках int. int count = (int) 40.9; хранит 40. 9 отбрасывается. Вверх не округляется. Это не второе число в строке. Не вторая строка на экране. Строка вывода по-прежнему Console.WriteLine(count);. Экран показывает 40. Одна строка. Без точки. Имени count на экране нет.
Это второй файл. Не тот, который вы храните. В хранимом файле 40.0, и цифра после точки — 0. Сохраните эту вторую форму как программу, чтобы увидеть, как 9 отбрасывается, затем верните int count = (int) 40.0;.
using System;
public class Pine
{
public static void Main()
{
int count = (int) 40.9;
Console.WriteLine(count);
}
}
Запустите dotnet run. Экран показывает 40. Одна строка. 9 не ломает build. Если экран показывает 41, вы запустили не этот файл. Если экран показывает 40.9, скобок нет или строка вывода печатает само число с точкой. Если экран показывает 40.0, вы ещё на хранимом файле — это правильный файл для возврата, но это не эта проверка. Увидев 40 из 40.9, верните хранимый файл: int count = (int) 40.0; и один Console.WriteLine(count);.
Скобки могут стоять перед именем
Имя может сначала хранить число с точкой. double — слово типа, которое согласуется с точкой. double weight = 40.9; хранит 40.9 в weight. В той строке скобок нет, потому что double уже подходит значению с точкой. Следующая строка — та, что не сходится: int count = (int) weight;. В скобках int, тип, который может хранить count. Они стоят перед именем weight, а не перед свежими цифрами. weight уже хранит 40.9. Скобки отбрасывают 9, и count хранит 40. Строка вывода по-прежнему Console.WriteLine(count);. Экран показывает 40. weight на экране нет. double на экране нет. 40.9 на экране нет.
Это третий файл. Не тот, который вы храните. В хранимом файле нет double и нет weight. На строке хранения записаны цифры 40.0. Слово внутри скобок должно быть типом, который имя может хранить. int count = (double) 40.0; кладёт double в скобки и int в имя. Два слова типа не совпадают. build пишет ошибку. Он не пишет 40.0. Не молчит.
using System;
public class Pine
{
public static void Main()
{
double weight = 40.9;
int count = (int) weight;
Console.WriteLine(count);
}
}
Запустите dotnet run. Экран показывает 40. Одна строка. double weight = 40.9; не требует скобок и не ломает build. Если экран показывает 40.9, строка вывода — Console.WriteLine(weight);. Верните Console.WriteLine(count);. Если экран показывает weight, вокруг имени в строке вывода кавычки. Увидев 40, верните хранимый файл. Не оставляйте double в файле, который храните.
Теперь вы можете сохранить целое из значения, записанного с точкой. int count = (int) 40.0; хранит 40. Console.WriteLine(count); пишет 40 и завершает строку. Точки на экране нет. int count = (int) 40.9; тоже пишет 40. 9 отбрасывается, не округляется. Те же скобки могут стоять перед именем, которое уже хранит 40.9, и экран снова 40. Без скобок int count = 40.0; заставляет build писать ошибку. (int) true тоже заставляет build писать ошибку. Следующая страница оставляет эти скобки. Она смотрит на имя, которое не хранит ни набранное вами число, ни набранное слово.
На экране — целое, которое помещается
Хранимый файл пишет 40. Имя в строке вывода — count, и count на экране нет. Скобки в файле, на экране их нет. Один WriteLine — одна строка. 9 после точки отбрасывается. Имя, хранящее 40.9, может стоять в тех же скобках, и экран всё равно показывает целое.
🧠 Проверьте Свои Знания
Проверьте Свои Знания
Бросьте себе вызов с помощью этой интерактивной викторины и узнайте, насколько хорошо вы понимаете тему
📝 Инструкции
- Внимательно прочитайте каждый вопрос
- Выберите лучший ответ на каждый вопрос
- Вы можете пересдавать тест столько раз, сколько захотите
- Ваш прогресс будет показан вверху