1. 程式人生 > >if 結構和三目運算和switch語句

if 結構和三目運算和switch語句

if語句需要注意的地方:

if判斷只能接一個語句,存在多個語句時,用塊語句表示{},若在if判斷後
直接加“;”相當於if判斷後加一個空語句,即使條件成立什麼也不會幹!

1. if的第一種形態(真假)

如果表示式的值為真, 則執行其後的語句, 否則不執行該語句。

if(表示式)語句

void main()
{
    int a=1, b=2, c=3;
    if (a+b)c=4;
        printf("%d", c);
}
View Code
void main()
{
    int a=1, b=2, c=3;
    
if (a<b); { //養成良好習慣, 加上{} c=4; } printf("%d", c); }

第二種形式為 if - else

if(表示式)
    語句1;
else
    語句2;
void main()
{
    int a=1, b=2;
    if (a>b)
        {
            printf("我比你大");
        }
    else
        {
            printf(
"我比你小"); } }

第三種形式 else if 多次判斷

if(表示式1)
    語句1;
else if(表示式2)
    語句2;
else if(表示式3)
    語句3
.。。。。
else
    語句;
void main()
{
    int a=8;
    if (a>10)
        {
            printf("值大於10");
        }
    else if (a == 10)
        {
            printf("值等於10");
        }
    
else if (a == 10) { printf("值等於10"); } else if (a == 8) { printf("要的就是你"); } else { printf("我比你小"); } }

 三目運算

條件運算子為?和:, 他是一個三目運算子, 即有三個參與運算的量。

組成條件表示式的形式為:

條件1? 條件2: 條件3

如果條件1為真則執行條件2

如果條件1為假, 則執行條件3

void main()
{
    int a=4, b=3, c;
    if (a>b)
        c=a;
    else
        c=b;
        
}
#-----------------------------
void main()
{
    int a=4, b=3, c;
    c =(a>b)?a:b;
    printf("%d", c);
}

注意事項:

1).條件運算子的運算優先順序低於關係運算符和算術運算子, 但高於賦值符:

max=(a>b):c:d

可以去掉括號而寫成

max = a>b:c:d



2)條件運算子?和:是一對運算子, 不能單獨分開使用



3)條件運算子的結合方向是自右向左。

例如:

a>b?a:c>d?c:d

可以理解為a>b?a:(c>d?c:d)

switch語句

c語言還提供了另一種用於多分支選擇的switch語句, 其一般形式為:

其語義是:計算表示式的值。並逐個與其後的常量表達式值相比較, 當表示式的值

與某個常量表達式的值相等時, 即執行其後的語句, 然後不在進行判斷, 繼續執行後面

所有case後的語句。 如表示式的值與所有case後的常量表達式均不相同時, 

則執行default後的語句。

看例子:

void main()
{
    int a,b=1;
    printf("please input number: \n");
    scanf("%d", &a);
    switch(a)
    {
        case 1:printf("1111\n");
            {
               b = 3;
               printf("b = %d\n", b);
            }

        default: printf("bbbb %d\n", b);
    }

}

case 1:printf("1111\n");break;

還可以配合三目運算

switch (a>1?2:3)

注意事項:

1)在case後的各常量表達式的值不能相同, 否則會出現錯誤。

2)在case後, 允許有多個語句, 可以不用{}括起來

3)各case和default子句的先後順序可以變動, 而不會影響程式執行結果

4)default子句可以省略不用。

相關推薦

if 結構運算switch語句

if語句需要注意的地方: if判斷只能接一個語句,存在多個語句時,用塊語句表示{},若在if判斷後 直接加“;”相當於if判斷後加一個空語句,即使條件成立什麼也不會幹! 1. if的第一種形態(真假) 如果表示式的值為真, 則執行其後的語句, 否則不執行該語句。 if(表示式)語句

java的if else 運算的效率問題

1.從型別轉換上看,因為三目運算子在做判斷的時候需要考慮到型別轉換的問題,而if else 不需要考慮型別轉換。  所以 if else 效率高一點。  2.從總體上看  A:需要考慮到迴圈自身所佔用的時間。  B:需要考慮到賦值以及迴圈內的其他運算子所佔用的時間。  所以

Java學習筆記之——if條件語句運算

三目運算 img bubuko color if條件語句 最大 image mage true 一、if條件語句 語法: if(條件){   執行語句1; }else{   執行語句2; } 二、三目運算符 ? 條件運算符 語法: 表達式?結果1:

布爾類型運算

根據 三目運算符 數值 數據 sys 使用 布爾類型 計算 lse 介紹C語言中沒有具體的bool類型,在C中使用int 型的0和1來代表true和false,但是在C++中對C的布爾類型有了一個增強,增加了一種bool類型,其值為true和false,並且理論上在內存中只

基礎型別的簡單運算運算字串的加法

[1]基本型別分類 整數類: 型別名 型別長度 byte 1 byte short 2 byte int 4 byte long 8 byte 2. 浮點數類 型別名

JavaSE7基礎 用if-else解釋運算

4.2 可用 技術分享 stat 程序員 ima div result 內容 jdk版本 :jdk-7u72-windows-i586系統 :Windows7編輯器 :Notepad++ v7.4.2註意事項 :博文內容僅供參考,不可用於其他用途。 代

微信小程式10---條件語句if迴圈語句for(運算+hidden)

在微信小程式的官方文件中,將這兩個語句歸化在框架的檢視層,分表叫條件渲染和類表渲染,其實他就是封裝了這兩條語句而已。 上圖(迴圈語句if) 1.它是通過在index.js中設定資料,然後再index.wxml中進行判斷,首先上index.wxml的程式碼

C之運算逗號表達式(十七)

C語言 三目運算符 逗號表達式 我們經常在 C 語言中會見到三目運算符,那麽我們今天來講下三目運算符和一種特殊的逗號表達式。 首先來講下三目運算符。什麽是三目運算符呢?它的語法格式是 (a ? b : c)。三目運算符可以作為邏輯運算的載體,規則是:當 a 的值為真時

Java學習筆記之——if條件語句運算子

一、if條件語句   語法: if(條件){     執行語句1;   }else{     執行語句2; }   二、三目運算子 ?    條件運算子 語法: 表示式?結果1:結果2;   如果表

C#7—switch語句講解運算子

一、switch語句講解   1、練習1             Console.WriteLine("輸入一個數字");             int number = int.Parse(Co

javascript下if else語句運算子效能測試

function testif(times){ console.time("test if else") var j=0; for(var i=0;i<times;i++){ if(i<500){ j+=1; }else{ j+=2;

03C++語言對C的增強——實用性、變量檢測、struct類型、C++中所有變量函數都必須有類型、bool類型、運算

自己 聲明 優化 同名 編譯器 直接 修飾 關鍵字 變化 register關鍵字 請求編譯器讓變量a直接放在寄存器裏面,速度快在c語言中 register修飾的變量 不能取地址,但是在c++裏面做了內容1register關鍵字的變化register關鍵字請求“編

js switch判斷 運算 while 及 屬性操作

接收 所有 pla isp 字符 child ren display fault 三 目運算:如var a = 10; var b= 12; c = a>b ?a:b; 若成立執行a否則執行b var isHide = true; 若用if判斷語句如下 if(isHi

數據結構——第章樹二叉樹:01樹二叉樹的類型定義

有序 存在 lin 深度 操作 root 判定樹 delet eem 1.樹的類型定義: (1)數據對象D:D是具有相同特性的數據元素的集合。 (2)數據關系R:若D為空集,則成為空樹 否則:在D中存在唯一的稱為根的數據元素root。當n>1時,其余結點可分為n(n&

資料結構——第章樹二叉樹:02二叉樹

1.二叉樹的儲存結構: (1)二叉樹的順序儲存表示: #define MAX_TREE_SIZE 100 //二叉樹的最大結點數 typedef TElemType SqBiTree[MAX_TREE_SIZE];  SqBiTree bt; (2)二叉樹的鏈式儲存表示: ①二叉連結

資料結構——第章樹二叉樹:03樹森林

1.樹的三種儲存結構: (1)雙親表示法: #define MAX_TREE_SIZE 100 結點結構: typedef struct PTNode {   Elem data;   int parent; //雙親位置域 } PTNode; (2)孩子雙親連結串列表示法: &nbs

Math.round(),增強for迴圈,equals方法==的區別,,instanceof運算子運算子的用法

1.Math.round() 有這樣一個問題,將數字23.4,23.6轉換成int型,得到的新數字是多少? 事實上直接轉換的話得到的數字都是23。但在我們程式設計的過程中有時候需要對數字進行四捨五入取整,那麼顯然上面的直接轉換就不能實現我們的要求。但好在java裡面給我提供了一個可以實現四捨五入

資料結構)StackVector原始碼分析

一、基本概念: 1、棧是什麼? 是一個只能在某一端進行插入、刪除操作的線性表。 * 從棧頂插入一個元素稱之為入棧(push) * 從棧頂刪除一個元素稱之為出棧(pop) 2、圖解: 3、棧的實現: 鏈式儲存(連結串列) 順序儲存(陣列) 4

if……else語句運算?:的區別在哪裡?

if……else與三目運算的最主要區別:三目運算有返回值,if else沒有返回值 。 I var n=1; if(n>1){ n=0; }else{ n++; } con

C語言筆記 第十八課 運算子逗號表示式

第十八課 三目運算子和逗號表示式 三目運算子 三目運算子(a?b:c)可以作為邏輯運算的載體 規則:當a的值為真時,返回b的值;否則返回c的值 下面的程式執行結束後,a,b,c的值分別為多少? int a = 1; int b = 2; int c = 0; c = a<b