Потому что switch()
работает с использованием меток. Он перескакивает на метку, на которой выполняется условие. Поэтому, когда вы достигаете
switch(value2) {
printf("aaaaaaaaaaaaa\n");
case 6:
поток управления немедленно переходит к метке case 6:
, чтобы он пропускал вызов printf()
.
Решение будет размещать его правильно, вне внутреннего переключателя:
case 3:
printf("aaaaa\n");
switch (value2) {
и т.п.