Map from Google - Switzerland

The Swiss climate is moderately continental in the plateau, alpine in the mountains, and more temperate in the Canton of Ticino.
The main Swiss cities are located on a plateau called Mittelland ("Central Plateau"), which lies at an altitude of about 400/600 metres (1,300/2,000 feet), and has a moderately continental climate, with cold and dull winters (the average January temperature is around freezing) and warm summers, with average highs around 23/25 °C (73/77 °F), and cool nights.
In the mountains the climate becomes colder with increasing altitude, but it also becomes sunnier in winter, because they are located above the blanket of fog and low clouds that often covers the plateau.
In the south, the Canton of Ticino has a milder climate, though very rainy, with afternoon thunderstorms in summer and heavy rains in autumn.
Late snowfalls and frosts are typical of the northern side of the Alps, which is exposed to cold currents from northern Europe. Cold spells can bring late snowfalls in spring, in March on the Central Plateau, and progressively later, even close to summer in the mountains. The cold wind, which in Switzerland and in central France is called Bise, blows from the north-east and is more frequent in winter and spring.
From the second half of April, when the first warm days occur, thunderstorms begin to erupt in the afternoon. Atlantic weather fronts can bring cool and rainy days even in summer. Hot periods, with highs above 30 °C (86 °F) are possible as well, but usually last only a few days.

Bern, the capital of Switzerland, lies in the plateau, at 500 metres (1,600 feet) above sea level, and has an average temperature in January of 0 °C (32 °F), and in July of 18.5 °C (65.5 °F). There are on average 35 days with snow per year, occurring from November to April.
Here are the average temperatures.
Average temperatures - Bern
BernJanFebMarAprMayJunJulAugSepOctNovDec
BernJFMAMJJASOND
Min (°C)-4-3037111312950-2
Max (°C)35101318222424191474
Min (°F)252732374552555448413228
Max (°F)374150556472757566574539

In Bern, precipitation amounts to about 1,050 mm (41 in) per year, well distributed throughout the year, but with a maximum in late spring and summer, due to afternoon thunderstorms. Here is the average precipitation.
Average precipitation - Bern
BernJanFebMarAprMayJunJulAugSepOctNovDecYear
BernJFMAMJJASONDY
Prec. (mm)605575801201101051151009075751060
Prec.(in)2.42.233.14.74.34.14.53.93.53341.7
Days1091110131111119101010124

In Zurich, at 400 metres (1,300 feet) above sea level, the temperatures are similar to that of Bern. In winter the weather is often cold and dull, but even in summer there can be some gloomy days. The rain pattern is very similar to that of Bern as well, with 1,085 mm (42.5 in) per year, and a maximum in late spring and summer.
Here are the average temperatures of Zurich.
Average temperatures - Zurich
ZurichJanFebMarAprMayJunJulAugSepOctNovDec
ZurichJFMAMJJASOND
Min (°C)-3-21481113121061-2
Max (°C)2481317212322191373
Min (°F)272834394652555450433428
Max (°F)363946556370737266554537

Zurich in winter

In Lucerne, the average temperature is also around freezing in January and around 18 °C (64 °F) in July.
In Geneva the climate is a bit milder, because of its location more to the west and on the shores of the lake of the same name, so it's less cold in winter, with an average temperature in January of 1 °C (34 °F), and with rarer snowfalls, and a little warmer and sunnier in summer, with a July average of 20 °C (68 °F). The rainfall is lower, especially in summer, so that the total is 870 millimetres (34 inches) per year, while in Zurich it's 1,085 mm (42.5 in). Lausanne and Montreux, the other major cities on Lake Geneva, have a similar climate. In Montreaux, the summer is usually pleasant, and there's no shortage of nice and sunny days.
Average temperatures - Geneva
GenevaJanFebMarAprMayJunJulAugSepOctNovDec
GenevaJFMAMJJASOND
Min (°C)-2-11481113131072-1
Max (°C)46101419232625211584
Min (°F)283034394652555550453630
Max (°F)394350576673797770594639

Basel, at 250 metres (800 ft) above sea level, lies outside the plateau, in the Rhine River Valley, however, here the climate is similar to that of cities like Zurich and Bern, though slightly warmer, because the lower altitude is balanced by the higher latitude, in fact the city lies in the climate area of Central Europe. Therefore, Basel is cold and gloomy in winter as well, and relatively warm, with possible thunderstorms, in summer.

A part of Switzerland that has a peculiar microclimate is the Valais, and in particular the valley of Sion: here precipitation is fairly low, only 570 mm (22.5 in) per year, due to the orientation of the valley (west-east), which protects it both from cold currents from the north and from warm and humid currents from Italy. On the other hand, during winter, cold air stagnates in the valley, so that in Sion the average temperature in January is -1.5 °C (29.5 °F). In July, the daily average is 18 °C (64 °F), therefore similar to the cities of the Central Plateau.

The warmest cities of Switzerland are those of Ticino, which is located on the southern side of the Alps, and therefore is sheltered from the cold northern wind, as happens in Lugano, located at less than 300 metres (1,000 feet) above sea level, and tempered by the lake of the same name. Here the climate is similar to that of the shores of Lake Como in Italy, and is relatively mild in winter, so that the average temperature in January is 3.5 °C (38.5 °F), with quite rare snowfalls and frosts, while it's warm but not oppressive in summer, with an average in July of 22.5 °C (72.5 °F).
Average temperatures - Lugano
LuganoJanFebMarAprMayJunJulAugSepOctNovDec
LuganoJFMAMJJASOND
Min (°C)125812151817141052
Max (°C)791316202427262217117
Min (°F)343641465459646357504136
Max (°F)454855616875817972635245

However, the climate of Ticino is quite rainy, especially in autumn, due to warm air masses from the Ligurian Sea, and in late spring and summer, due to afternoon thunderstorms, enhanced by the surrounding mountains as well as the waters of the lake. Here the relatively drier season is winter, from December to February. The rainfall amounts to 1,560 mm (61.5 in) per year. Here is the average precipitation in Lugano.
Average precipitation - Lugano
LuganoJanFebMarAprMayJunJulAugSepOctNovDecYear
LuganoJFMAMJJASONDY
Prec. (mm)655080155195165155160185140125801560
Prec.(in)2.623.16.17.76.56.16.37.35.54.93.161.4
Days556111310810898698

Many parts of Switzerland are subject to a warm and dry wind coming down from the mountains: the Föhn. It blows from the south over a large part of Switzerland, leading to sudden increases in temperature, and is more frequent in spring and autumn. On the contrary, in Ticino, being on the southern side, it's the wind from the north the one that warms up as it descends from the mountains, so this area is often relatively warm and dry when the rest of the country is under the grip of cold waves.

In the mountains, the climate varies with altitude and slope exposure. Most of the country is located on the northern side of the Alps, which has a lower average temperature than the southern side, and therefore a lower snowline. The weather in the mountains is highly variable, because it depends more than in the plains on the nature of the air mass that hangs over a given area at a given time: for this reason, during cold spells, above 1,500 metres (5,000 feet) it's possible to see the snow even in June, while on sunny days, in winter the temperature can rise above freezing and become almost mild. During the warm season, from May to September, in the mountains there are frequent thunderstorms in the afternoon or evening.
Zermatt, located in the canton of Valais, at 1,600 metres (5,250 feet) above sea level, has a relatively dry microclimate, so that the annual precipitation is lower than 700 mm (27.5 in), being sheltered on both the north and south sides by a double chain of mountains, just like the aforementioned Sion. But in the mountains that surround it, high and covered with glaciers, you can ski for most of the year. In Zermatt, the average temperature of January is -4 °C (25 °F), that of July is 14 °C (57 °F).
At the Gotthard Pass, at 2,100 metres (6,900 ft), the average temperature goes from -7 °C (19 °F) in January, to 8 °C (46.5 °F) in July.
In Davos, in the Canton of Grisons, at 1,600 metres (5,250 feet) above sea level, the temperature goes from -4.5 °C (24 °F) in January, to 12.5 °C (54.5 °F) in July. Here are the average temperatures.
Average temperatures - Davos
DavosJanFebMarAprMayJunJulAugSepOctNovDec
DavosJFMAMJJASOND
Min (°C)-9-9-6-2257741-4-8
Max (°C)014712161817141140
Min (°F)161621283641454539342518
Max (°F)323439455461646357523932

In Davos, summer is definitely the rainiest season, because of afternoon thunderstorms. Here is the average precipitation.
Average precipitation - Davos
DavosJanFebMarAprMayJunJulAugSepOctNovDecYear
DavosJFMAMJJASONDY
Prec. (mm)6555605590125135150956070601020
Prec.(in)2.62.22.42.23.54.95.35.93.72.42.82.440.2
Days9810101214131410899126

When to go

The best time to visit Switzerland runs from late spring to early autumn (May to September).
For skiing, the latter part of winter and early spring (February-March) are preferable, because the days are longer than in December and January. In some places you can do summer skiing.
To visit mountains, summer is a good time, although in the afternoon there are frequent thunderstorms.

What to pack

In winter: warm clothes, down jacket, hat, scarf, gloves, raincoat or umbrella.
In summer: light clothes, T-shirts and shorts, but also long pants, jacket and sweater for the evening and for cooler days; raincoat or umbrella. For the mountains, hiking shoes, sunscreen and sunglasses; warmer clothes for the highest peaks.