1)if and else may result in priority encoder or mux.
that depends upon no of branches u have.
2)no need to declare as wire.
3)u have to declare as reg.
1)if the case items in a case are mutualy exclusive then it will form a mux,otherwise it will form priority structure
2)declare it as wire
3)declare as reg