|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Bannato
Iscritto dal: Dec 2012
Messaggi: 41
|
[C++] Switch e la sua "espressione"
Premetto che compilo ancora col vecchio Dev.. ormai obsoleto e non piu aggiornato.. col costrutto switch è possibile mettere una stringa nell'espressione?
C'ho provato con string ma allo switch non piace questa variabile.. ho fatto un tentativo da niubbo pure con un vettore di caratteri ![]() ![]() ![]() Ho provato pure con la cascatina di if else-if, ma non mi attira tanto l'idea... |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jan 2012
Messaggi: 1267
|
Non si possono usare string nello Switch. Solo valori integrali o convertibili ad un tale valore (come i char).
Nel C# invece (e spero anche in altri linguaggi) lo Switch prende anche le stringhe, se ti può interessare. |
![]() |
![]() |
![]() |
#3 |
Bannato
Iscritto dal: Dec 2012
Messaggi: 41
|
Interessante. Mhh no, C# non fa per me.. tutti i linguaggi propensi all'OOP piu del C e del C++ non sono quello che cerco.
In C alla fine "tutto" si puo fare, però bisogna fare giri mooolto larghi ![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jan 2012
Messaggi: 1267
|
Come vuoi tu o_O
Non ti stavo proponendo di passare al C# cmq, era giusto una informazione. |
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Jul 2011
Messaggi: 246
|
Si può fare anche in Java, ma solo dalla versione 1.7 in poi (se non erro).
__________________
Non c'è cosa peggiore nella vita di un programmatore di un errore che si presenta solo ogni tanto. CONCLUSO POSITIVAMENTE CON: oldfield |
![]() |
![]() |
![]() |
#6 |
Bannato
Iscritto dal: Dec 2012
Messaggi: 41
|
Ora non so come sia strutturato completamente il C#, l'ho visto su un po di tutorial su youtube. E' ottimo per chi vuole fare programmi che prendano piede velocemente, però non sono multi piattaforma e sono piuttosto lentini.. vero peccato.
Ma forse un giorno ci passerò anch'io per questi linguaggi. |
![]() |
![]() |
![]() |
#7 | |
Bannato
Iscritto dal: Dec 2012
Messaggi: 41
|
Quote:
http://alefranz.net/it/programmers-t...ase-su-string/ EDIT: Ok errato io ![]() https://gist.github.com/1112538 Sintassi ardua da capire, anche se dopo mesi di C qualcosa riesco a comprendere anche in Java Ultima modifica di stohuman : 18-01-2013 alle 09:04. |
|
![]() |
![]() |
![]() |
#8 | |
Member
Iscritto dal: Jul 2011
Messaggi: 246
|
Quote:
http://stackoverflow.com/questions/3...trings-in-java http://www.theserverside.com/tutoria...ional-Switches
__________________
Non c'è cosa peggiore nella vita di un programmatore di un errore che si presenta solo ogni tanto. CONCLUSO POSITIVAMENTE CON: oldfield |
|
![]() |
![]() |
![]() |
#9 |
Bannato
Iscritto dal: Dec 2012
Messaggi: 41
|
Beh si, java è un mostro
![]() http://stackoverflow.com/questions/4...-integers?lq=1 Tradotto: Convertire la stringa in numero e quindi mettere i soliti... Codice:
case 1: case 2: e.. Anche se gli occhi mi bruciano come l'inferno voglio testare sta cosa. |
![]() |
![]() |
![]() |
#10 |
Bannato
Iscritto dal: Dec 2012
Messaggi: 41
|
Per convertire una stringa in un int ho usato la cascatina
![]() Devo trovare un modo piu carino per convertire le stringhe però, magari con una funzioncina, convertendo e giocando con i cast sui caratteri delle stringhe.. Codice:
#include <iostream> #include <cstdlib> #include <fstream> #include <ctime> #include <conio2.h> using namespace std; void mainmenu(){ cout << "Uno per Funzione 1\nDue per Funzione 2\nExit per uscire dal programma ora.\n\t"; string g; int x=0; cin >> g; if (g == "Uno") x = 1; else if (g == "Due") x = 2; else if (g == "Exit") x = 0; else x = -1; switch (x){ case 1: cout << "Funzione 1!\n"; break; case 2: cout << "Funzione 2!\n"; break; case 0: cout << "Exit, bye!\n"; getchar(); exit(0); default: cout << "Comando non riconosciuto.\n"; clrscr(); mainmenu(); } } int main(){ mainmenu(); fflush(stdin); cout << "Exit, bye!\n"; getchar(); } |
![]() |
![]() |
![]() |
#11 | |
Senior Member
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
|
Quote:
Il discorso comunque è decisamente diverso, dal mio punto di vista. Un linguaggio non va scelto in base alla "simpatia" verso la sua sintassi o al fatto che è più o meno performante, quanto al cosa vuoi programmare. Se programmi su di un iDevice userai l'Objective C, su android il Java, su Windows il C# la fa sempre più da padrona, per i videogame (ma vabbè, qui si comincia ad andare su scenari parecchio avanzati) difficile affidarsi ad altro che non sia il C++ (a parte qualche caso, vedi per esempio i buoni risultati ottenuti con il C# e il framework XNA), e via discorrendo. |
|
![]() |
![]() |
![]() |
#12 | |
Senior Member
Iscritto dal: May 2008
Messaggi: 429
|
Quote:
![]() bellissima la risposta del tipo su stackoverlow: Switch statements with String cases have been implemented in Java SE 7, at least 16 years after they were first requested. |
|
![]() |
![]() |
![]() |
#13 | |
Senior Member
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
|
Quote:
In questi casi io andrei di if_else if_else if_ecc... , che risulta comunque estremamente leggibile e funzionale. |
|
![]() |
![]() |
![]() |
#14 | |
Bannato
Iscritto dal: Dec 2012
Messaggi: 41
|
Quote:
Che non abbia niente di OOP non è proprio vero, certo non mi puo venire in mente di farmi un team di 3 persone e fare photoshop o GIMP completamente in C++... difatti come dici tu, si sceglie il linguaggio in base a quello su cui si vuole programmare. Io non credo proprio di mettermi a fare le cosi dette "App", o programmini con GUI gia pronte. La gran parte del codice che scriverò voglio che vada sulla maggior parte dei sistemi, quindi cerco di tenermi lontano dalle chiamate e dai linguaggi troppo attaccati ai sistemi stessi, quindi anche i framework o le directX se riguarda videogameing.. Ho iniziato col C e ci continuo ora ![]() |
|
![]() |
![]() |
![]() |
#15 | |
Bannato
Iscritto dal: Dec 2012
Messaggi: 41
|
Quote:
Personalmente poi anziche scrivere sempre un numero anziche la scelta vera e propria stufa un po', sto solo facendo dei test, non dico che ora tutti devono fare come dico io. Oltre tutto con i processori di oggi, qualche riga di codice in piu non è cosi pesante. Basta non esagerare nei punti critici, una cascata di if else e un costrutto sicuramente non faranno laggare un semplice menù. |
|
![]() |
![]() |
![]() |
#16 | |
Senior Member
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
|
Quote:
Riguardo alle interfacce, infine, ormai qualsiasi programma con interfaccia utente si basa su librerie grafiche già fatte (più o meno complete). Restando in ambito C++, librerie come QT, GTK e similari sono proprio questo. |
|
![]() |
![]() |
![]() |
#17 |
Bannato
Iscritto dal: Dec 2012
Messaggi: 41
|
Diciamo che io sono per il 70% C++ e 30% C std, anche se il primo inizio è stato con il C, poi i vari tutorial alla cazzo di cane mi hanno fatto fare confusione e mi sono tirato fuori da solo studiandomi meglio le sintassi e quello che cambia tra i due linguaggi.
L'interfaccia grafica non è il mio obiettivo, per ora sto ai livelli del terminale. Ma se dovessi scrivere un programma con una GUI lo farei ugualmente in C++, no sacrifice no victory. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:52.