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 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 73/77 °F, and cool nights.
The mountains become colder with increasing altitude, but they also become 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, also afternoon thunderstorms begin to occur. Atlantic weather fronts can bring cool and rainy days even in summer. Hot periods, with highs above 85 °F are possible as well, but usually last only a few days.

Bern, the capital of Switzerland, lies in the plateau, at 1,600 feet above sea level, and has an average temperature in January of 32 °F, and in July of 65 °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 (°F)252732374552555448413228
Max (°F)374150556472757566574539

In Bern, precipitation amounts to about 41 inches 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. (in)2.42.233.14.74.34.14.53.93.53341.7
Days1091110131111119101010124

In Zurich, at 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. Even the rain pattern is very similar to that of Bern, with 42.8 inches per year and a maximum in late spring and summer.
Here are the average temperatures of Zurich.
Average temperatures - Zurich
ZurichJanFebMarAprMayJunJulAugSepOctNovDec
ZurichJFMAMJJASOND
Min (°F)272834394652555450433428
Max (°F)363946556370737266554537

Zurich

Even in Lucerne, the average temperature is around freezing (32 °F) in January and around 64.5 °F in July.
In Geneva the climate is a bit milder, because of its location a bit more to the west and on the shores of the lake of the same name, so it's less cold in winter, so that the average January temperature rises to 34 °F, and with rarer snowfalls, a little warmer and sunnier in summer, with a July average of 68 °F. Even the rainfall is lower, especially in summer, with 34 inches per year, compared with 43 inches in Zurich. 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 sunny days.
Average temperatures - Geneva
GenevaJanFebMarAprMayJunJulAugSepOctNovDec
GenevaJFMAMJJASOND
Min (°F)283034394652555550453630
Max (°F)394350576673797770594639

Basel, at 820 feet above sea level, lies outside the plateau, in the Rhine River Valley. Here the climate is still similar to that of cities like Zurich and Bern, just slightly warmer, because the lower altitude is balanced by the higher latitude, actually it 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, just 22 inches per year, due to the orientation of the valley (west-east) which protect it both from cold currents from the north and 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 29.5 °F. In July, the daily average is 64.5 °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 cold northern winds, as happens in Lugano, located at less than 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 38.5 °F, with quite rare snowfalls and frosts, while it's warm but not oppressive in summer, with an average in July of 72 °F.
Average temperatures - Lugano
LuganoJanFebMarAprMayJunJulAugSepOctNovDec
LuganoJFMAMJJASOND
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 61 inches per year. Here is the average precipitation in Lugano.
Average precipitation - Lugano
LuganoJanFebMarAprMayJunJulAugSepOctNovDecYear
LuganoJFMAMJJASONDY
Prec. (in)2.623.16.17.76.56.16.37.35.54.93.161.4
Days556111310810898698

While the southern side is quite mild, 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, also the thunderstorms in the afternoon begin to show up. Atlantic weather fronts can bring cool and rainy days even in summer. Hot periods, with highs above 85 °F are possible, but usually last only a few days.

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. In Ticino, on the other hand, being on the southern side, it's the wind from the north the one which looks like the Föhn, 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. The majority 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 reaching a given area at a given time: for this reason, above 5,000 feet it's possible to see the snow even in June during cold spells, while in winter the temperature can rise above freezing and become almost mild on sunny days. During the warm season, from May to September, in the mountains there are frequent thunderstorms in the afternoon and evening.
Zermatt in Valais, at 5,250 feet above sea level, has a relatively dry microclimate, so that the annual precipitation is lower than 28 in, being sheltered on both the north and south sides by a double chain of mountains, just like the aforementioned Sion. But the mountains that surround it, high and covered with glaciers, allow you to ski for most of the year. The average January temperature in Zermatt is 25 °F, that of July is 57 °F.
At the Gotthard Pass, at 6,900 feet, the average temperature goes from 19.5 °F in January, to 46.5 °F in July.
In Davos, in the Canton of Grisons, at 5,250 feet above sea level, the temperature goes from 23.5 °F in January, to 55 °F in July.
Average temperatures - Davos
DavosJanFebMarAprMayJunJulAugSepOctNovDec
DavosJFMAMJJASOND
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. (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 practice summer skiing.
To visit the 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 cooler days; raincoat or umbrella. For the mountains, hiking shoes, sunscreen and sunglasses, warmer clothes for the highest peaks.