主頁 > 軟體設計 > 【C語言】從入門到入土(分支和回圈陳述句篇)

【C語言】從入門到入土(分支和回圈陳述句篇)

2021-08-07 08:35:12 軟體設計

前言:
本篇為你講解分支陳述句和回圈陳述句的使用,把分支與回圈清晰化,

分支和回圈陳述句篇:

  • 一、陳述句
  • 二、分支陳述句
    • 1.分支陳述句(選擇結構)
    • 2.if陳述句
    • 3.switch陳述句
  • 三、回圈陳述句
    • 1.回圈
    • 2.while陳述句
      • 1.break和continue的區別
    • 3.for陳述句
    • 4.do while陳述句
    • 5.小練習
  • 四、goto陳述句
  • 五、猜數字小游戲


一、陳述句

c語言是結構化的程式語言,c語言中有三種結構:

  1. 順序結構(從頭到底)
  2. 選擇結構(if、switch)
  3. 回圈結構(while、for、do…while)

那什么是陳述句?

在c語言中規定,在寫完一條陳述句的時候在后面加上分號; 就是一條陳述句,也就是說C語言中由一個分號 ; 隔開的就是一條陳述句,

比如:

int main()
{
	int a = 5;//這就是一條陳述句
	printf("%d", a);//這也是一條陳述句
    ;//這還是陳述句,這是空陳述句
	return 0;
}

二、分支陳述句

1.分支陳述句(選擇結構)

什么是分支呢,就是從總體或一個系統中分出部分,而選擇結構,就是你進行了某種操作之后從而得到不一樣的結果

比如說你考上了大學,如果你好好學習,那么在畢業就可以拿到好offer;如果你不好好學習,那你畢業之后就老老實實回家養豬了,

這樣子:

又或者是:

2.if陳述句

if陳述句就是用來判斷某件事情是否成立,如果成立則執行以下操作,它還可以搭配else,else if進行組合,從而將幾種判斷可能都可以表示,

if陳述句的語法結構:

1.  if(運算式)
    陳述句;
    
2.  if(運算式)
    陳述句1;
    else
    陳述句2;
    
3.  if(運算式1)//多分支 
    陳述句1;
    else if(運算式2)
    陳述句2;
    else
    陳述句3;

第一種就是最基本的if陳述句:

基礎判斷一件事情是否真偽,實際上,if陳述句中運算式真正決定的是運算式的值,比如下面的money >= price,如果成立,那運算式值為1,如果不成立,運算式值為0,在c語言中,0表示假,非0表示真,但真的事件轉換為數字時是默認轉換為1,

int main()
{
	int price = 39;//價格
	int money = 50;//余額
	if (money >= price)//判斷余額是否大于價格
	{
		printf("余額充足,可以購買!");//如果成立,就輸出這個陳述句
	}

	return 0;
}

第二種是可以進行分支的if else陳述句:

if else陳述句就像它英語釋義一樣,如果…其他,就是if陳述句判斷某種事情的一種結果,然后其他結果的執行else陳述句,

int main()
{
	int age = 18;
	if (age >= 18)//大于等于18則運算式為1
	{
		printf("您已成年");
	}
	else//除了上面的可能其余結果均是未成年
	{
		printf("您未成年");
	}

	return 0;
}

第三種if else if else陳述句

if else if else就是前面兩個的組合體,可以判斷多種可能和其余可能,實作多個分支選擇,

int main()
{
	float rec = 12.91;//奧運會110米欄奧運會記錄
	float your_ach = 13.22;//奧運成績
	
	if(your_ach<rec)//判斷成績是否比奧運會記錄小
	{
	   printf("你的成績打破了奧運會記錄!\n");
	}
	if (your_ach <= 13.02)//拿金牌的成績
	{
		printf("恭喜你,獲得金牌!");
	}
	else if (your_ach <= 13.20 && your_ach > rec)//前三名成績范圍
	{
		printf("恭喜你,獲得獎牌!");
	}
	else//其他成績
	{
		printf("很遺憾,未能獲得獎牌,但已經很棒了!");
	}
	return 0;
}

這里需要注意:
if…else if陳述句中,如果if判斷為真,則不會再執行判斷else陳述句,兩者是二選一關系,而if為假才會再去判斷else里面的if陳述句,
<>
而if…if…陳述句的話,則是按順序執行,執行完上面的if陳述句,無論真偽,繼續執行下面的if陳述句,

還有些代碼可能是這樣子的:

int main()
{
	int a = 5;
	if (a > 10)
	{
		printf("yes");
	}
	else
		printf("no");//加個{ }更好
}
int main()
{
	int a = 15;
	if (a > 10)
		printf("yes");
	return 0;//加上else { }更好
}

這些代碼也可以運行,但是整體不夠美觀,在這些代碼的基礎上加上花括號對稱顯示,這樣邏輯更加清晰,不容易出錯,

比如下面代碼就讓人容易以為列印的是1:

int main()
{
	int a = 1;
	int b = 2;
	if (a == 0)
		if (b == 2)
			printf("1");
	else
		printf("0");
		
	return 0;
}

最后,了解了if陳述句之后是不是就可以把一開始的分支的流程圖寫出來了?

int main()
{
	char ch = 0;
	printf("你上大學了,是否想好好學習?");
	printf("請輸入Y/N:>\n");
	scanf("%c", &ch);
	if (ch == 'Y')
	{
		printf("我要好好學習!\n");
		printf("三年后...\n");
		printf("你拿到了好offer!\n");
	}
	else if (ch == 'N')
	{
		printf("我不想好好學習\n");
		printf("三年后...\n");

		int a = 0;
		printf("家大業大/普通人:1/2:>\n");
		scanf("%d", &a);
		if (a == 1)
		{
			printf("你還是拿到了offer\n");
		}
		else if (a == 2)
		{
			printf("回家養豬去吧\n");
		}

	}

	return 0;
}

3.switch陳述句

接下來到我們的switch陳述句,switch陳述句也是一種分支陳述句, 常常用于多分支的情況,

有了if分支還又多一個switch干嘛,下面用一個代碼來進行說明:

//假設我要列印今天是星期幾
int main()
{
	int day = 0;
	scanf("%d", &day);
	if (day == 1)
	{
		printf("今天是星期一");
	}
	else if (day == 2)
	{
		printf("今天是星期二");
	}
	else if (day == 3)
	{
		printf("今天是星期三");
	}

	//..........還要寫幾個
	return 0;
}

這樣子是不是代碼有點拖泥帶水呢,那這時候就應該使用switch了:

switch陳述句的語法結構:

switch(整形運算式)
{
   case 整形常量運算式:
       陳述句;
}

//附帶產品:
break;
//跳出,當執行完某個陳述句后,跳出整個回圈

default
//分支中沒有switch整形運算式,執行default子句

用switch陳述句就可以更清晰簡單的多分支:

int main()
{
	int day = 0;//整形
	scanf("%d", &day);
	switch(day)//day必須是整形運算式
	{
	       case 1//case入口也需要是整形常量運算式
	            printf("星期一\n");
	            break;//跳出
	            //case就好像分支入口,而break就是分支出口
	            
           case 2:
				printf("星期二\n");
				break;
		   case 3:
				printf("星期三\n");
				break;
		   case 4:
				printf("星期四\n");
				break;
		   case 5:
				printf("星期五\n");
				break;
		   case 6:
				printf("星期六\n");
				break;
			case 7:
				printf("星期天\n");
				break;
			default:
			    printf("輸入有誤,無法識別");
			    //當輸入的數字不是1-7的時候執行這個陳述句
    }
	return 0; 
}

在上面的代碼中,swicth(day)就相當于非誠勿擾的擇偶要求,如果day是1,那我就去case 1那里,然后執行case 1里面的內容,如果是2,那么就選擇去了case 2那里,而break相當于出口,就是執行完case 1的內容就跳出去了,如果case 1最后沒有break,那他就會自動執行下去case 2,但不是所有的switch陳述句都用上break,這要看代碼的邏輯,

比如我想知道今天需不需要上課:

int main()
{
	int day = 0;
	scanf("%d", &day);
	switch (day)
	{
	case 1:
	case 2:
	case 3:
	case 4:
	case 5:
		printf("今天是上學日,加油上學人!\n");
		break;
	case 6:
	case 7:
		printf("今天是休息日,要好好休息哦!\n");
		break;
	default:
		printf("輸入有誤,無法識別\n");
		break;
	}

注意:
if ,switch陳述句都可以進行嵌套,可以在分支進入之后再分支,完成更復雜的判斷,switch陳述句中,在最后一個 case 陳述句的后面加上一條 break陳述句,之所以這么寫是可以避免出現在以前的最后一個 case 陳述句后面忘了添加 break陳述句,


三、回圈陳述句

1.回圈

但我們認識上面的選擇陳述句中,我們來認識回圈陳述句,if陳述句中,當條件滿足的情況下,if陳述句后的陳述句執行,否則不執行,但是這個陳述句只會執行一次,那我們需要多次判斷呢?就需要我們的回圈陳述句了,

2.while陳述句

while 陳述句語法結構:

while(運算式)
回圈陳述句;

//附贈
continue;
//用于終止本次回圈的,也就是continue后的代碼在本次不在執行下去

while陳述句中,運算式結果為真,就進入回圈,執行一次,再回來判斷運算式結果,如果運算式為1,那么代碼將進入無限回圈,

比如:
在這里插入圖片描述
在這里插入圖片描述
那么他將進入瘋狂點贊我的行為當中且無法自拔,

言歸正傳,那while陳述句什么時候使用呢? 比如你要列印1到10的數字的時候,總不能說printf()上10個吧,那10000個數的時候呢?所以在一件事情沒有完成之前都繼續執行下去,我們就可以用while陳述句:

int main()
{
	int count = 1;
	while (count<10)
	{
		printf("我真帥!第%d次呼喊\n",count);
		count++;
	}
	return 0;
}

在這里插入圖片描述
這里怎么才呼喊9次啊,我們要看到我們的條件運算式上寫的是count<10,所以當count加到10那一次,我就不再進去了,因為while陳述句是先判斷后執行,

1.break和continue的區別

前面有個break跳出,這里又來一個continue跳出,那兩者有什么區別呢?

我們可以來比較下面的代碼:

//1.break版
int main()
{
	int count = 1;
	while (count<10)
	{
		if (count == 5)
		{
			break;
		}
		printf("我真帥!第%d次呼喊\n",count);
		count++;
	}
	printf("呼喊完畢\n");
	return 0;
}

//2.continue版
int main()
{
	int count = 1;
	while (count<10)
	{
		if (count == 5)
		{
			continue;
		}
		printf("我真帥!第%d次呼喊\n",count);
		count++;
	}
	printf("呼喊完畢\n");
	return 0;
}

代碼只在if陳述句中不同,那運行結果是什么呢?

我們可以看到,break版在while回圈本應回圈9次的時候,只呼喊了4次,然后跳出去呼喊完畢,而continue版呼喊了4次之后不在呼喊又不說完畢,

那我們先來了解一下break和continue的定義:

break在while回圈中的作用
其實在回圈中只要遇到break,就停止后期的所有的回圈,直接終止回圈, 所以:while中的break是用于永久終止回圈的,

continue在while回圈中的作用就是:
continue是用于終止本次回圈的,也就是本次回圈中continue后邊的代碼不會再執行,而是直接跳轉到while陳述句的判斷部分,進行下一次回圈的入口判斷,

所以,當上面的代碼count==5的時候在while陳述句中碰見break,就直接跳出了while回圈并不再進來,而碰見continue的時候只是這一次不再執行下面的代碼,然后又回去給while的運算式判斷,當count==5的時候碰見continue,又回去判斷,又count==5又回去判斷又… 就導致了死回圈,

所以當我們需要跳出回圈的時候,要注意區分這兩者的功效,千萬不要用錯,在呼喊自己帥的時候欲言又止,

3.for陳述句

for陳述句語法結構:

for(運算式1;運算式2;運算式3)
     回圈陳述句;

其中,運算式1 運算式1為初始化部分,用于初始化回圈變數的, 運算式2 運算式2為條件判斷部分,用于判斷回圈時候終止, 運算式3 運算式3為調整部分,用于回圈條件的調整,

在這里插入圖片描述
for回圈陳述句先執行運算式1,然后判斷運算式2,為真進入回圈陳述句,為假退出回圈,若進入回圈陳述句執行后,最后再執行運算式3調整變數,然后再次進入運算式2判斷進行回圈,

我們先對比一下while回圈和for回圈的區別與細節,下面我要實作列印1-10的數字用for:

//1.while回圈
int main()
{
	int i = 1;//初始化部分
	while (i <= 10)//判斷部分
	{
		printf("%d\n", i);
		i++;//調整部分
	}
	return 0;
}

//2.for回圈
int main()
{
     for(i=1; i<=10; i++) //合三為一
   {
       printf("%d\n",i);
   }
}

可以發現在while回圈中依然存在回圈的三個必須條件,但是由于風格的問題使得三個部分很可能偏離較遠,這樣查找修改就不夠集中和方便,所以,for回圈的風格更勝一籌,for的使用頻率也最高,

而for回圈陳述句也比較容易理解:

int main()
{
	int i = 0;
	for (i = 0; i <= 10; i++)
	//單次運算式;條件運算式;末尾回圈體
	//初始化賦值;判斷條件;回圈陳述句
	{
		printf("%d", i);//回圈體
	}

	return 0;
}

for陳述句即在for的括號中,第一個;前的是作為某一變數的初始化賦值陳述句, 用來給回圈控制變數賦初值,第二個是判斷陳述句,用于判斷是否滿足條件進入回圈,第三個是回圈后調整回圈變數,避免無限回圈,

而for陳述句和while陳述句中的break是一樣的,但continue有所區別:

for回圈中的continue跳過continue后邊的代碼,去了調整部分,調整回圈變數,不容易造成死回圈,

while回圈中,continue跳過continue后邊的代碼,直接去到判斷部分,

4.do while陳述句

do陳述句的語法結構:

do
{
   回圈陳述句
}while(運算式);

do…while回圈和while類似,但是區別在于do…while回圈會直接執行一次,不管運算式判斷真偽,先執行一次再到while處判斷,也就是先執行,后判斷,判斷真偽作為再次進入回圈的依據,

比如:

int main()
{
	int i = 0;
	do 
	{
		i++;
	} while (i <= 10);
    //  與while回圈同樣的判斷條件但結果多1,證明在相同條件下
    //do while陳述句比while陳述句多執行一次回圈體
    
	printf("%d", i);//i=11
	return 0;
}

do 陳述句在回圈中至少執行一次,使用場景局限,并不是經常使用,

5.小練習

知道了上面的內容,我們來寫一個練習:

1.撰寫代碼,演示多個字符從兩端移動,向中間匯聚,比如這樣子的:

//我要列印hello,那么就這樣子列印:
h   o
he lo
hello
//從兩邊到中間

代碼:

#include <windows.h>
#include <string.h>
#include <stdlib.h>

int main()
{ 
	char arr1[] = "hello! today is a good day!";
	//你想列印的內容
	char arr2[] = "                           ";
	//空螢屏

	int right = strlen(arr1)-1;
	//strlen計算字串長度,減1表示字串最后字符的下標
	int left = 0;
	//首字符下表標

	while (left <= right)//回圈條件:最左下表和最右下表不等
	{
		arr2[left] = arr1[left];//跟空螢屏交換字符,然后列印
		arr2[right] = arr1[right];
		left++;//最左的交換列印后向右移一位
		right--;//最右的交換列印后向左移一位

		printf("%s\n", arr2);//列印
		
		Sleep(1000);
		//執行掛起一段時間,就是停頓時間,單位是毫秒,所以這里是1s
		system("cls");
		//system是庫函式,用來執行系統命令的,cls表示清屏
		//所以上面的列印會清空然后再列印下一次內容
	}

	printf("%s\n", arr1);
	//最后一次還是會清屏,那我跳出回圈后再列印一次就完整了,

	return 0;
}

四、goto陳述句

從理論上 goto陳述句是沒有必要的,實踐中沒有goto陳述句也可以很容易的寫出代碼,但是某些場合下goto陳述句還是用得著的,最常見的用法就是終止程式在某些深度嵌套的結構的處理程序,例如一次跳出兩層或多層回圈,這種情況使用break是達不到目的的,它只能從最內層回圈退出到上一層的回圈,相當于一個任意門,

我們可以來寫一個讓電腦關機的程式:

#include <windows.h>
#include <string.h>
#include <stdlib.h>
int main()
{
	char input[10] = { 0 };
	//設定一個字串讓你輸入

	system("shutdown -s -t 60");
	//system是庫函式,用來執行系統命令的
	//shutdown -s是關機,后面加上-t 秒數 是多少秒后關機

again:
	printf("電腦將在1分鐘內關機,如果輸入:我是憨批,就取消關機!\n請輸入:>");
	//提示你輸入
	scanf("%s", input);//輸入

	if (strcmp(input, "我是豬") ==0 )
		//strcmp字串比較函式,如果相同就回傳0
	{
		system("shutdown -a");
		//shutdown -a是取消關機
	}
	else//如果輸入不一樣
	{
		goto again;//跳轉回去再讓你輸入,1分鐘后就真的關機了
	}
	return 0;
}

這就是goto的用處,回傳某一處標記的地方,但不用goto陳述句我們同樣可以用while陳述句去實作這個功能,其實goto陳述句真正適用的地方在于深層回圈嵌套想出來的時候,比如

int main()
{
		for ()
		{
			for ()
			{
				for ()
				{
					if ()
					{
						goto here;
					}
				}
			}
		}
	here:  
    //重見光明
	return 0;
}

五、猜數字小游戲

根據這一篇的內容,可以寫一個猜數字小游戲,下面是猜數字小游戲的鏈接,感興趣的小伙伴可以看一看哦:

【C語言】猜數字小游戲

好啦,本篇的內容就到這里,小白制作不易,有錯的地方還請xdm指正,互相關注,共同進步,

還有一件事:

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/292225.html

標籤:其他

上一篇:帶你搞定漢諾塔

下一篇:【C語言實作】最大公約數的3種求法

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more