1. 程式人生 > >判斷語句switch

判斷語句switch

IOS學習第5天

switch-case結構

  • 執行步驟

switch後面的小括弧中可以寫一個表示式、變數、常量

1.先計算switch後面的表示式的結果

2.從上到下的將這個結果和每一個case後面的值進行相等比較判斷

3.只要有1個相等,那麼久執行其中的程式碼,執行瓦尼後,就結束整個switch結構

4.如果不相等,再判斷下一個case的值

5.如果所有的case後面的值和表示式的結果都不相等,就執行default中的程式碼

switch - case01

  • case的穿透

每一個case塊後面的break在語法上是可以不屑的

break的意思:代表立即結束整個switch-case結構,如果case快中沒有break:那麼就會直接穿透到下一個case中執行程式碼,知道遇到break才會結束switch結構,或者執行完

switch - case02

  • 使用switch的注意

1.switch後面的表示式任意型別都是可以的,出了實型

* 2.switch後面的表示式的結果出了小數,其他都是可以的,是小數就報錯.原因:魷魚switch結構的本質是對於case後面的選項進行等值比較,浮點數在記憶體中實際上是一個無限接近的數,所以無法進行完全的等值比較 *

3.case快下面可以寫任意行程式碼,只要符合你的邏輯,如果case快中要宣告變數,那麼這個case快就必須要使用大括號

4.case快可以有任意個,根據個人的邏輯來.default可以省略,如果省略就沒有預設執行程式碼了

* switch-case與if結構比較,switch-case結構更善於處理整數的等值判斷,但是不善於處理和範圍相關的 *

if-else-if結構

需要按照順序判斷多個條件,只要一個成立,就要執行對應的事情,後面的就不需要再判斷了

  • if缺點:只能在條件滿足的時候執行一段指定的程式碼,條件不滿足的時候就無法執行另外的程式碼了
    *
    if-else缺點:只能判斷一個條件

  • if-else注意點:

    *1.不要在else附近的括號的外面寫程式碼,就不是if-else結構了

    2.if-else結構兩個大括號裡面的程式碼不會同時執行,也不會都不執行,根本

    根本原因:if後面的判斷是一個條件寶大師(比較表示式/邏輯表示式),肯定是有結果的,要不是真要不是假,肯定時有幾個結果的,所以if-else結構的兩個花括號必然有一個會執行

  • if-else-if注意點

    1.只要前面的條件成立,就會執行對應的程式碼,執行完畢之後,立即結束這個結構,哪怕後面的條件是成立的,也不會執行

    2.如果判斷了後面的條件,那麼就說明前面的條件是不成立的,所以後面的條件中不需要特別的,寫前面的條件的不成立

    3.判斷的順序最好不要亂,如果你要亂寫,那麼條件就要完成一些,但是一般情況下,我們從上到到下,條件的範圍逐步縮小

    4.else可以省略,如果省略,那麼久沒有預設執行程式碼了

    5.else if的個數可以任意,根據你的具體情況來,有多少個條件就判斷多少個

    三目表示式

    條件表示式 ? 值1 : 值2;

    如果條件表示式成立,那麼這個三元表示式的結果就是值1,否則就是指2

    如何產生一個隨機數

    生成一個0到N之間的隨機數

    int number = arc4random_uniform(10);
    
    int number = arc4random % 10;;

相關推薦

java選擇判斷語句(switch)

控制流程語句之—-switch選擇判斷語句 switch語句的格式: switch(你的選擇){ case 值1: 符合值1執行的程式碼 break;

判斷語句switch

IOS學習第5天 switch-case結構 執行步驟 switch後面的小括弧中可以寫一個表示式、變數、常量 1.先計算switch後面的表示式的結果 2.從上到下的將這個結果和每一個case後面的值進行相等比較判斷 3.只要有1個相等,那麼久

基礎知識—條件判斷語句-switch語句

if語句是單一分支選擇的,C++又提供了一種多分支選擇的switch語句。 switch語句的一般表現形式 switch(表示式) { case 表示式常量1: 語句1; b

46、求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。

closed else while spl 判斷語句 stat 條件 執行 ret 思路:循環或者遞歸都有個結束條件和執行條件。用&&短路與代替。 //短路與&&;就是只有前一個條件滿足才可以去判斷第二個條件。 //遞歸的出口

【類和物件】求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)

題目描述: 求1+2+3+...+n,要求不能使用乘除法(數學公式)、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C). 分析:這道題雖然常用的方式都給禁掉了,但是可以使用我們c++學過的類和物件,通過使用類和靜態來完成。常規情況下,從1+到n,

劍指offer-求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)

題目如下: 求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C) 本題考的知識點就兩點 && 運算子 false && true =>

題目描述 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。

//求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字 //及條件判斷語句(A?B:C)。 public class Solution { public int Sum_Solution(int n) { //if

不用if,.?,switch判斷語句,求兩變數的大小

int p[2]; while(cin >> a>>b) { p = {b,a}; max = p[a>b];

找出兩個int型變數的最大值和最小值,不使用if/:?/switch判斷語句

方法一: Max=(a+b+|a-b|)/2; Max=(a+b-|a-b|)/2; 方法二:通過加減運算和移位運算相結合 Min = a+(((b-a)>>31)&(b-a)); Max = a-(((a-b)>>31)&(a-b

劍指offer---47求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)

求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。 public class Solution { public int Sum_Solution(int n) { // if(

C++實現:求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)

程式碼: class Solution { public: class Sum { public: Sum() { s_count++; s_sum += s_count;

兩個數判斷大小(不能用 if, switch, ?, 和其他判斷語句

求最值,考慮數學關係 程式碼如下( C ): #include <stdio.h> #include <math.h> #define MAX(a,b)

求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。Java實現

前幾天跟同學交流聽說一個比較有意思的oj題目,具體描述如下: 題目描述: 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。 輸入: 輸入可能包含多個測試樣例。 對於每個測試案例,輸

題目:求1+2+...+n,要求不能使用乘除法,for,while,if,else,switch,case等關鍵字及條件判斷語句(A?B:C)

    這個問題本身沒有太多的實際意義,但不少面試官認為這個可以考察應聘者發散思維能力的題目,而發散思維能夠反映出應聘者知識面 的寬度,以及對程式設計相關技術理解的深度。     通常求1+2+..+n除了用公式n(n+1)/2之外,無外乎迴圈和遞迴兩種思想,由於已經明確限

Java中的判斷語句(if....;if...else...;if...else if.... else....;switch;while....)

package learn; public class ConditionalStatement { public static void main(String[] args){ //if...else...語句 int one = 30; if(one % 2 ==

switch(選擇判斷語句

switch語句 格式: switch(表示式){ case 取值1: 執行語句; break; case 取值2: 執行語句; break; ……

求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)(劍指offer)

今天在牛客網上遇到這樣一道題目,求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C) 一般大家在看到這種題目的時候是完全沒有頭緒的,但是我們可以從多方面進行思考,首先我們應該想

java題目:求 1+2+...+n,要求不能用除法、 for、 while、 if、 else、 switch、 case 等關鍵字及條件判斷語句( A?B:C)。

這是劍指offer的46道面試題,由於面試官諸多條件的限制,本文采用遞迴的手法完成程式碼 public class Sum { public static void main(String[] args) { System.out

js中的if判斷語句switch條件分支語句

時間 code 代碼段 分支 執行 分支語句 形式 if條件語句 ons 語句是js中最重要的成分 本文想介紹的是if判斷語句和switch條件分支語句 ------------------------------------------------------------

比較兩個數a、b的大小,不能使用大於/小於、if、switch,?:等判斷語句

本文摘自:http://tangyuan1314.iteye.com/blog/1485559 今天面試碰到了這個問題,知道是位操作,不過當時沒想起來,回來查了查總結一下。其實方法很簡單,就是相減後看符號位,將減的結果的符號位移位到末尾,再和1與操作,或者直接和0x8000