iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 4
0
自我挑戰組

C-Programming系列 第 4

C-Programming - Day04

  • 分享至 

  • xImage
  •  

運算

布林運算

C 語言中並沒有布林!

在 C 語言中非零即是真

運算子 意義 舉例
< 小於 A < B
> 大於 A > B
<= 小於等於 A <= B
>= 大於等於 A >= B
== 等於 A == B
!= 不等於 A != B
&& and(且) &&
! not(非) !A
&& and(且) A && B
` `
#include <stdio.h>
int main(){
    int a = 5;
    int b = 2;
    printf("%d\n", a >= b);
    return 0;
}

#output: 1

迴圈

我們要需要重複的執行某一段動作的時候

有兩種方式

  1. 迴圈
  • while

  • for

  1. 遞迴

但是遞迴有點複雜

所以留待下次再解釋

今天的主題先來談談迴圈

while

while 的迴圈中

條件成真的話會持續執行

也就是說當布林運算為true的時候

則重複執行while中的動作

#include <stdio.h>
#include <stdlib.h>

int main(){
    int sum = 0,num;
    while(sum <= 100){
        printf("please input a number to sum:");
        scanf("%d",&num);
        sum = sum + num;
        printf("The \"sum\" is %d\n",sum);
    }
    return 0;
}

此範例會不停地請你輸入數字

直到總計超過100的時候

就跳出迴圈

顯示總數

for

for的使用方式為

小括號內依序放入條件變數設定、繼續條件設立、條件變數更改

並用;隔開

大括號內為執行動作

#include <stdio.h>
#include <stdlib.h>

int main(){
    int i;
    for(i=1;i<10;i++){
        printf("2*%d=%2d\n",i,2*i);
    }
    return 0;
}

此範例會顯示出2的乘法列表

Function

簡介

一般來說,程式啟動時從程式進入點開始

即 main 的所在位置

從以前到現在,我們程式也都是寫在 main 裡面

例如下方這個程式:

int main() {
    printf("hello world!\n");
    return 0;
}

不過,有時候我們會有一些重複的程式碼

舉例來說,我們可能常常用到次方這個計算

這時候我們就能用 Function 來減少程式碼的數量

而且若是需要修改計算方式的話

不需要每個地方都修改

增加維護性

其實,說穿了就是各位在數學上都有學習過的函數

y = f(x)

只是現在用 C 來表達

定義

return_type function_name( parameter list ) {
   body of the function
}

example

int pow(int base, int power) {
    int i, sum = base;
    for (i = 1; i < power; i++) {
        sum = sum * base;
    } 
    return sum; 
}

宣告

若 Function 的順序在main的之後

需要先行宣告原型

若是順序在man之前

則不需要先行宣告原型

在main 之前

void f1(void) {
    printf("%s", "hello");
}

int main(void) {
    f1();
}

在main之後

void f1(int);

int main(void) {
    f1();
}

void f1(int n) {
        printf("%s", "hello");
}

明天再來討論Function 的輸入與輸出


上一篇
C-Programming Day03
下一篇
C-Programming - Day05
系列文
C-Programming9
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言