``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142``` ```1 00:00:00,000 --> 00:00:00,430 2 00:00:00,430 --> 00:00:02,540 >> DAVID J. MALAN: Let's refine our printing of ASCII characters just a 3 00:00:02,540 --> 00:00:03,380 little bit. 4 00:00:03,380 --> 00:00:07,490 Because characters are simply numbers underneath the hood, it turns out that 5 00:00:07,490 --> 00:00:11,220 even within our looping construct we can actually iterate not only over 6 00:00:11,220 --> 00:00:14,360 just ints, but also over the chars themselves. 7 00:00:14,360 --> 00:00:18,290 >> In other words, I could tell the computer to start iterating from A up 8 00:00:18,290 --> 00:00:22,400 through Z rather than even have to know more or deal with the equivalence 9 00:00:22,400 --> 00:00:25,960 of A being 65 and Z being 90. 10 00:00:25,960 --> 00:00:29,650 In other words, I can reimplement this program as follows. 11 00:00:29,650 --> 00:00:33,190 >> For char, let's call it c, equals. 12 00:00:33,190 --> 00:00:36,520 And now I'd like to start iterating when the character equals quote, 13 00:00:36,520 --> 00:00:38,620 unquote, A. And notice the single quotes. 14 00:00:38,620 --> 00:00:43,250 This is indeed a single character and not a one character string. 15 00:00:43,250 --> 00:00:44,240 >> Semicolon. 16 00:00:44,240 --> 00:00:48,850 Let's iterate so long as c is less than or equal to capital Z, also 17 00:00:48,850 --> 00:00:49,720 single quoted. 18 00:00:49,720 --> 00:00:53,290 And on each iteration of this loop, let's increment c itself. 19 00:00:53,290 --> 00:00:55,880 Because again, at the end of the day, c is just a number 20 00:00:55,880 --> 00:00:56,700 underneath the hood. 21 00:00:56,700 --> 00:00:59,470 And so we can also manipulate it as such. 22 00:00:59,470 --> 00:01:05,540 >> Now inside this loop, let's print out that percent i is percent 23 00:01:05,540 --> 00:01:07,460 c, backslash n. 24 00:01:07,460 --> 00:01:13,900 And plug in now for i the result of casting c, a char, to an int, followed 25 00:01:13,900 --> 00:01:16,400 by c itself. 26 00:01:16,400 --> 00:01:17,260 >> Semicolon. 27 00:01:17,260 --> 00:01:18,210 Save my file. 28 00:01:18,210 --> 00:01:20,280 And let's compile and run. 29 00:01:20,280 --> 00:01:25,790 Make ASCII 1 dot slash ASCII 1. 30 00:01:25,790 --> 00:01:32,740 And, scrolling back up, we see that 65 is again A, 66 is again B, and all the 31 00:01:32,740 --> 00:01:36,110 way down to 90 is again Z. 32 00:01:36,110 --> 00:01:37,383 ```