연습 - 이스케이프된 문자 시퀀스를 사용하여 출력 형식 지정

완료됨

이 연습에서는 이전 연습의 콘솔 출력을 수정하여 교사가 지정한 보고 형식 지정을 달성합니다.

콘솔 출력 형식 지정

이 작업에서는 보고된 출력에 마무리 작업을 적용하도록 코드를 업데이트합니다. 먼저 교사가 지정한 열 레이블을 포함하는 머리글 행을 추가합니다. 그런 다음 문자 이스케이프 시퀀스를 사용하여 정보 열 간 추가 패딩을 추가합니다.

  1. .NET 편집기에서 각 학생의 현재 수업 점수와 문자 성적을 표시하는 데 사용되는 Console.WriteLine() 문을 찾습니다.

  2. Console.WriteLine() 문 위에 빈 코드 줄을 만듭니다.

  3. 만든 빈 코드 줄에서 학생 성적에 대한 머리글을 추가하려면 다음 코드를 입력합니다.

    Console.WriteLine("Student Grade\n");
    

    텍스트 끝에 \n을 포함하고 있습니다. “C#를 사용하여 기본 문자열 형식 지정 수행” 모듈에서 \n 이스케이프 문자 시퀀스로 인해 새 줄이 만들어진다는 것을 배웠습니다. 이스케이프 시퀀스의 위치가 중요합니다. 이 경우 \n은 콘솔에 쓰려는 정보의 끝에 있으므로 “학생 성적”이 표시된 후 새 줄이 추가됩니다.

  4. 정렬된 텍스트 열로 출력 형식을 지정하려면 다음과 같이 단어 사이의 공백을 \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 이스케이프 시퀀스는 텍스트 항목 사이에 탭 정지를 삽입합니다. 탭 정지 추가는 왼쪽 정렬된 정보 열이 되어야 합니다.

  5. 업데이트 결과를 보려면 실행을 선택합니다.

  6. 애플리케이션의 출력을 다음 출력과 비교합니다.

    Student	Grade
    
    Sophia: 94.6    A
    Nicolas:    83.6    B
    Zahirah:    83.4    B
    Jeong:  95.4    A
    
  7. 공백 문자 대신 탭을 사용했음에도 일부 줄은 여전히 학생의 이름과 숫자 점수 사이에 공백이 많지 않습니다.

    이 차이는 탭 간격이 적용되는 방식 때문입니다. 탭 중지 위치는 4자 간격으로 설정되며 각 탭은 다음 탭 중지 위치로 이동합니다. 5자 문자열 뒤에 탭 이스케이프 시퀀스가 있는 경우 이스케이프 시퀀스는 8자 위치의 탭 중지로 이동하여 간격을 공백 문자로 채워 출력에 공백을 만듭니다. 그러나 7자 문자열 뒤에 탭 이스케이프 시퀀스가 있는 경우 동일한 위치로 이동할 수 있습니다. 이렇게 하면 탭 이스케이프 시퀀스가 다음 탭 중지 위치에서 더 멀리 나타날 때 더 눈에 띄게 됩니다.

  8. 처음 두 열 사이의 공백을 더 눈에 띄게 하려면 다음과 같이 두 개의 짧은 학생 이름 뒤에 다른 \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");
    

작업 결과 확인

이 작업에서는 코드를 실행하고 출력이 올바른지 확인합니다.

  1. 코드를 다음과 비교합니다.

    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");
    
  2. 코드를 실행하고 형식이 지정된 출력을 표시하려면 실행을 선택합니다.

  3. 코드가 예상대로 작동하는지 확인하려면 애플리케이션의 출력을 다음 출력과 비교합니다.

    Student         Grade
    
    Sophia:         94.6    A
    Nicolas:        83.6    B
    Zahirah:        83.4    B
    Jeong:          95.4    A
    

    코드가 다른 결과를 표시하는 경우 코드를 검토하여 오류를 찾고 업데이트해야 합니다. 코드를 다시 실행하여 문제가 해결되었는지 확인합니다. 코드가 예상 결과를 생성할 때까지 코드를 계속 업데이트하고 실행합니다.