Når man \'nester\' flere switch sætninger inden i hinanden i MSVC 6, bliver indentationen underlig: main() { int a,b;
switch (a) { case 0: break; case 1: switch (b) { case 0:
break; case 1:
break; case 2: break; default:
break; } case 2: break; default: break;
}
Som man kan se bliver case2: og default, der hører til a\'s switch sætning rykket ind på niveau med b\'s switch sætning - hvilket vel ikke er rigtigt. Hvis man sætter {} om b\'s switch sætning ser det fint ud, men det er jo lidt træls (og grimt):
main() { int a,b;
switch (a) { case 0: break; case 1: { switch (b) { case 0: break; case 1:
break; case 2: break; default: break; } } case 2: break; default: break; } }
Er der nogen forslag til løsning? Er det en kendt bug?
Jeg bruger ikke MSVC, men Borland Builder her bestemmer du selv hvordan du vil have din syntax, jeg vil tro at du kan det samme i MSVC (opsætning af automatik eller slå den fra).
Sådan ville det se ud hvis jeg lavede det samme i BCB++
main() { int a,b;
switch (a) { case 0: break; case 1: { switch (b) { case 0: break; case 1: break; case 2: break; default: break; } } case 2: break; default: break; } }
Du kan jo arrangere din kode som du vil, det er jo kun ment som en effektiv hjælp... Grunden til at det sker er at der er forskel på hvordan man logisk vil arrangere henholdsvis switch-kode og andet kode. Da switch-statements ikke forekommer så ofte (sammenlignet med andet kode), har man altså valgt en pæn formatering af \'det andet\' kode!
Ja man kan selvfølgelig gøre det manuelt, men det er jo ikke problemet. Hvad er forskellen på hvordan man logisk vil arrangere switch-kode og andet kode (jpk)? Det kan jeg ikke se. Når noget kommer ind i {} rykker det in , når det møder } skal det rykke ud igen - let. Men det gør editoren ikke medmindre man sætter {} om indholdet, når indholdet i en case er en ny switch. Så det må vel være en bug, som ingen kan løse? Right?
Når man taster \":\" efter den første case, rykker linien en tab til venstre. Hvis man bare lige trykker Ctrl+Z derefter, bliver indrykningen som jeg selv foretrækker det...
Jeg har oplevet det samme, men VC++.NET har rettet det (Og en masse andet)!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.