연습 - 이스케이프된 문자 시퀀스를 사용하여 출력 형식 지정
이 연습에서는 이전 연습의 콘솔 출력을 수정하여 교사가 지정한 보고 형식 지정을 달성합니다.
콘솔 출력 형식 지정
이 작업에서는 보고된 출력에 마무리 작업을 적용하도록 코드를 업데이트합니다. 먼저 교사가 지정한 열 레이블을 포함하는 머리글 행을 추가합니다. 그런 다음 문자 이스케이프 시퀀스를 사용하여 정보 열 간 추가 패딩을 추가합니다.
.NET 편집기에서 각 학생의 현재 수업 점수와 문자 성적을 표시하는 데 사용되는 Console.WriteLine() 문을 찾습니다.
Console.WriteLine()
문 위에 빈 코드 줄을 만듭니다.만든 빈 코드 줄에서 학생 성적에 대한 머리글을 추가하려면 다음 코드를 입력합니다.
Console.WriteLine("Student Grade\n");
텍스트 끝에
\n
을 포함하고 있습니다. “C#를 사용하여 기본 문자열 형식 지정 수행” 모듈에서\n
이스케이프 문자 시퀀스로 인해 새 줄이 만들어진다는 것을 배웠습니다. 이스케이프 시퀀스의 위치가 중요합니다. 이 경우\n
은 콘솔에 쓰려는 정보의 끝에 있으므로 “학생 성적”이 표시된 후 새 줄이 추가됩니다.정렬된 텍스트 열로 출력 형식을 지정하려면 다음과 같이 단어 사이의 공백을
\t
이스케이프 시퀀스로 바꿉니다.Console.WriteLine("Student\tGrade\n"); Console.WriteLine("Sophia:\t" + sophiaScore + "\tA"); Console.WriteLine("Nicolas:\t" + nicolasScore + "\tB"); Console.WriteLine("Zahirah:\t" + zahirahScore + "\tB"); Console.WriteLine("Jeong:\t" + jeongScore + "\tA");
\t
이스케이프 시퀀스는 텍스트 항목 사이에 탭 정지를 삽입합니다. 탭 정지 추가는 왼쪽 정렬된 정보 열이 되어야 합니다.업데이트 결과를 보려면 실행을 선택합니다.
애플리케이션의 출력을 다음 출력과 비교합니다.
Student Grade Sophia: 94.6 A Nicolas: 83.6 B Zahirah: 83.4 B Jeong: 95.4 A
공백 문자 대신 탭을 사용했음에도 일부 줄은 여전히 학생의 이름과 숫자 점수 사이에 공백이 많지 않습니다.
이 차이는 탭 간격이 적용되는 방식 때문입니다. 탭 중지 위치는 4자 간격으로 설정되며 각 탭은 다음 탭 중지 위치로 이동합니다. 5자 문자열 뒤에 탭 이스케이프 시퀀스가 있는 경우 이스케이프 시퀀스는 8자 위치의 탭 중지로 이동하여 간격을 공백 문자로 채워 출력에 공백을 만듭니다. 그러나 7자 문자열 뒤에 탭 이스케이프 시퀀스가 있는 경우 동일한 위치로 이동할 수 있습니다. 이렇게 하면 탭 이스케이프 시퀀스가 다음 탭 중지 위치에서 더 멀리 나타날 때 더 눈에 띄게 됩니다.
처음 두 열 사이의 공백을 더 눈에 띄게 하려면 다음과 같이 두 개의 짧은 학생 이름 뒤에 다른
\t
를 추가합니다.Console.WriteLine("Student\t\tGrade\n"); Console.WriteLine("Sophia:\t\t" + sophiaScore + "\tA"); Console.WriteLine("Nicolas:\t" + nicolasScore + "\tB"); Console.WriteLine("Zahirah:\t" + zahirahScore + "\tB"); Console.WriteLine("Jeong:\t\t" + jeongScore + "\tA");
작업 결과 확인
이 작업에서는 코드를 실행하고 출력이 올바른지 확인합니다.
코드를 다음과 비교합니다.
int currentAssignments = 5; int sophia1 = 93; int sophia2 = 87; int sophia3 = 98; int sophia4 = 95; int sophia5 = 100; int nicolas1 = 80; int nicolas2 = 83; int nicolas3 = 82; int nicolas4 = 88; int nicolas5 = 85; int zahirah1 = 84; int zahirah2 = 96; int zahirah3 = 73; int zahirah4 = 85; int zahirah5 = 79; int jeong1 = 90; int jeong2 = 92; int jeong3 = 98; int jeong4 = 100; int jeong5 = 97; int sophiaSum = sophia1 + sophia2 + sophia3 + sophia4 + sophia5; int nicolasSum = nicolas1 + nicolas2 + nicolas3 + nicolas4 + nicolas5; int zahirahSum = zahirah1 + zahirah2 + zahirah3 + zahirah4 + zahirah5; int jeongSum = jeong1 + jeong2 + jeong3 + jeong4 + jeong5; decimal sophiaScore = (decimal) sophiaSum / currentAssignments; decimal nicolasScore = (decimal) nicolasSum / currentAssignments; decimal zahirahScore = (decimal) zahirahSum / currentAssignments; decimal jeongScore = (decimal) jeongSum / currentAssignments; Console.WriteLine("Student\t\tGrade\n"); Console.WriteLine("Sophia:\t\t" + sophiaScore + "\tA"); Console.WriteLine("Nicolas:\t" + nicolasScore + "\tB"); Console.WriteLine("Zahirah:\t" + zahirahScore + "\tB"); Console.WriteLine("Jeong:\t\t" + jeongScore + "\tA");
코드를 실행하고 형식이 지정된 출력을 표시하려면 실행을 선택합니다.
코드가 예상대로 작동하는지 확인하려면 애플리케이션의 출력을 다음 출력과 비교합니다.
Student Grade Sophia: 94.6 A Nicolas: 83.6 B Zahirah: 83.4 B Jeong: 95.4 A
코드가 다른 결과를 표시하는 경우 코드를 검토하여 오류를 찾고 업데이트해야 합니다. 코드를 다시 실행하여 문제가 해결되었는지 확인합니다. 코드가 예상 결과를 생성할 때까지 코드를 계속 업데이트하고 실행합니다.