연습 - 이스케이프된 문자 시퀀스를 사용하여 출력 형식 지정
이 연습에서는 이전 연습의 콘솔 출력을 수정하여 지정된 보고 형식을 달성합니다.
콘솔 출력 형식 지정
이 작업에서는 보고된 출력에 마무리 작업을 적용하도록 코드를 업데이트합니다. 먼저 학생의 이름을 포함하고 열 레이블이 포함된 머리글 행을 추가합니다. 그런 다음 문자 이스케이프 시퀀스를 사용하여 정보 열 간 추가 패딩을 추가합니다.
.NET 편집기에서 학생의 과정 정보를 표시하는 데 사용되는 Console.WriteLine() 문을 찾습니다.
Console.WriteLine() 문 위에 빈 코드 줄을 만듭니다.
만든 빈 코드 줄에서 학생의 이름을 추가하려면 다음 코드를 입력합니다.
Console.WriteLine($"Student: {studentName}\n");
텍스트 끝에
\n
을 포함하고 있습니다. “C#를 사용하여 기본 문자열 형식 지정 수행” 모듈에서\n
이스케이프 문자 시퀀스로 인해 새 줄이 만들어진다는 것을 배웠습니다. 이스케이프 시퀀스의 위치가 중요합니다. 이 경우\n
이 콘솔에 쓰려는 정보의 끝에 있으므로 "학생 이름"이 표시된 후 새 줄이 추가됩니다.이전 Console.WriteLine() 문 다음에 빈 코드 줄을 만듭니다.
만든 빈 코드 줄에서 과정 정보의 머리글을 추가하려면 다음 코드를 입력합니다.
Console.WriteLine("Course\t\t\t\tGrade\tCredit Hours");
과정 이름 다음에 네 개의 탭을 추가합니다. 추가 탭 정지는 더 긴 과정 이름을 위한 추가 공간을 허용합니다.
정렬된 텍스트 열로 출력 형식을 지정하려면 다음과 같이 단어 사이의 공백을
\t
이스케이프 시퀀스로 바꿉니다.Console.WriteLine($"{course1Name}\t\t\t{course1Grade}\t\t{course1Credit}"); Console.WriteLine($"{course2Name}\t\t\t{course2Grade}\t\t{course2Credit}"); Console.WriteLine($"{course3Name}\t\t\t{course3Grade}\t\t{course3Credit}"); Console.WriteLine($"{course4Name}\t{course4Grade}\t\t{course4Credit}"); Console.WriteLine($"{course5Name}\t\t{course5Grade}\t\t{course5Credit}");
\t
이스케이프 시퀀스는 텍스트 항목 사이에 탭 정지를 삽입합니다. 이러한 탭 정지는 왼쪽 정렬된 정보 열이 되어야 합니다.course4Name
및course5Name
의 탭 수를 줄입니다. 이러한 차이점은 해당 과정 이름이 다른 과정 이름보다 길기 때문입니다. 이전 단계에서 긴 과정 이름과 짧은 과정 이름 모두에 대해 간격을 일관되게 유지하기 위해 코스 이름 열 뒤에 추가 탭을 추가했습니다.최종 GPA 결과 출력에 패딩을 추가하려면 다음과 같이 코드를 업데이트합니다.
Console.WriteLine($"\nFinal GPA:\t\t\t {leadingDigit}.{firstDigit}{secondDigit}");
작업 결과 확인
이 작업에서는 코드를 실행하고 출력이 올바른지 확인합니다.
코드가 다음과 유사한지 확인합니다.
string studentName = "Sophia Johnson"; string course1Name = "English 101"; string course2Name = "Algebra 101"; string course3Name = "Biology 101"; string course4Name = "Computer Science I"; string course5Name = "Psychology 101"; int course1Credit = 3; int course2Credit = 3; int course3Credit = 4; int course4Credit = 4; int course5Credit = 3; int gradeA = 4; int gradeB = 3; int course1Grade = gradeA; int course2Grade = gradeB; int course3Grade = gradeB; int course4Grade = gradeB; int course5Grade = gradeA; int totalCreditHours = 0; totalCreditHours += course1Credit; totalCreditHours += course2Credit; totalCreditHours += course3Credit; totalCreditHours += course4Credit; totalCreditHours += course5Credit; int totalGradePoints = 0; totalGradePoints += course1Credit * course1Grade; totalGradePoints += course2Credit * course2Grade; totalGradePoints += course3Credit * course3Grade; totalGradePoints += course4Credit * course4Grade; totalGradePoints += course5Credit * course5Grade; decimal gradePointAverage = (decimal) totalGradePoints/totalCreditHours; int leadingDigit = (int) gradePointAverage; int firstDigit = (int) (gradePointAverage * 10 ) % 10; int secondDigit = (int) (gradePointAverage * 100 ) % 10; Console.WriteLine($"Student: {studentName}\n"); Console.WriteLine("Course\t\t\t\tGrade\tCredit Hours"); Console.WriteLine($"{course1Name}\t\t\t{course1Grade}\t\t{course1Credit}"); Console.WriteLine($"{course2Name}\t\t\t{course2Grade}\t\t{course2Credit}"); Console.WriteLine($"{course3Name}\t\t\t{course3Grade}\t\t{course3Credit}"); Console.WriteLine($"{course4Name}\t{course4Grade}\t\t{course4Credit}"); Console.WriteLine($"{course5Name}\t\t{course5Grade}\t\t{course5Credit}"); Console.WriteLine($"\nFinal GPA:\t\t\t {leadingDigit}.{firstDigit}{secondDigit}");
코드를 실행하고 형식이 지정된 출력을 표시하려면 실행을 선택합니다.
코드가 예상대로 작동하는지 확인하려면 애플리케이션의 출력을 다음 출력과 비교합니다.
Student: Sophia Johnson Course Grade Credit Hours English 101 4 3 Algebra 101 3 3 Biology 101 3 4 Computer Science I 3 4 Psychology 101 4 3 Final GPA: 3.35
코드가 다른 결과를 표시하는 경우 코드를 검토하여 오류를 찾고 업데이트해야 합니다. 코드를 다시 실행하여 문제가 해결되었는지 확인합니다. 코드가 예상 결과를 생성할 때까지 코드를 계속 업데이트하고 실행합니다.