福岡県八女郡立花町（現：八女市）の農家に生まれ、八女郡広川町で育つ。福岡県立福島高等学校、日本大学法学部政治経済学科卒業。大学時代には政治研究会を立ち上げた。大学卒業後は泰道三八事務所勤務を経て、自由民主党の古賀誠衆議院議員の秘書を務める。1993年、34歳で八女市長選挙に無所属で出馬し、全国最年少で初当選。その後4期15年8ヶ月にわたり市長を務めた。2005年の市長選では、かつて秘書を務めた古賀の主導により対立候補を立てられるも、4選。2008年9月、八女市長を辞職。2009年、第45回衆議院議員総選挙に民主党公認で、かつて自身が仕えた古賀の選出選挙区である福岡7区から出馬。福岡7区では古賀に敗れたが、重複立候補していた比例九州ブロックで復活し、当選した。2012年の第46回衆議院議員総選挙では、古賀から後継指名を受けて立候補した、古賀の元秘書である自民党新人の藤丸敏に福岡7区で敗れ、比例復活もならず落選した。2013年7月、第23回参議院議員通常選挙に民主党公認で福岡県選挙区（定数2）から出馬し、得票数2位で当選。この選挙において、九州地方で唯一当選した民主党の候補者であった。2018年5月に民進党と希望の党が合流する形で結成された国民民主党には参加せず、無所属で活動する意向を表明し直前に民進党を離党した。10月17日、立憲民主党の院内会派である「立憲民主党・民友会」に入会し、12月25日に正式に入党した。2019年7月、第25回参議院議員通常選挙に立憲民主党公認で福岡県選挙区（定数3）から立候補し、再選。
C/C++におけるdo-while文の特殊な用法に、最後にセミコロンが付く構文であることを利用し、展開結果にブロックを含むマクロの呼出しを関数のように見えるものにする、というイディオムがある。#if NDEBUG#define DEBUG_LOG(msg)#else#define DEBUG_LOG(msg) do { \  if (msg) { printf("%.*s\n", (int)strlen(msg), msg); } \} while (0)#endifvoid some_function(){    DEBUG_LOG("debug message");}これを利用することで、「セミコロンを付けてはいけないマクロ」という、扱いが面倒なものを作らずにすむ。
program FactorialProgram;var  counter, factorial: Integer;begin  counter := 5;  factorial := 1;  repeat    factorial := factorial * counter;    counter := counter - 1;  until counter = 0;  Write(factorial);end.
int counter = 5;long factorial = 1;do {  factorial *= counter--; // Multiply, then decrement.} while (counter > 0);System.out.println(factorial);
unsigned int counter = 5;unsigned long factorial = 1;do {  factorial *= counter--; /* Multiply, then decrement. */} while (counter > 0);printf("%lu\n", factorial);
Dim counter As UInteger = 5Dim factorial as ULong = 1Do  factorial *= counter ' multiply  counter -= 1 ' decrementLoop While counter > 0System.Console.WriteLine(factorial)
with Ada.Integer_Text_IO;procedure Factorial is   Counter   : Integer := 5;   Factorial : Integer := 1;begin   loop      Factorial := Factorial * Counter;      Counter   := Counter - 1;      exit when Counter = 0;   end loop;   Ada.Integer_Text_IO.Put(Factorial);end Main;
辛亥革命が発生した1911年（宣統3年）10月、宝豊で挙兵した。初めは20数人と小銃1本を有するにすぎなかったが、後に周辺の民兵を糾合していき、1912年（民国元年）には500人を擁し、河南省西部一帯でゲリラ戦を展開した。1913年（民国2年）、第二革命が発生すると白朗は南方の革命党の支持のもと、袁世凱政権に反乱を起こし、京漢線の安全を脅かすようになった。袁世凱は湖北省・河南省・陝西省の3省連合軍で白朗を包囲したが、連合軍のうち陝西の王生岐の部隊が反乱を起こし、白朗軍に参加した。これにより白朗軍の兵力と装備は大いに改善され、白朗は「中華民国扶漢討袁司令大都督」と自称するようになった。1914年（民国3年）、白朗軍は袁世凱軍の包囲を突破して安徽省に侵入した。2月13日、袁世凱は段祺瑞を総司令として北洋軍の精鋭を繰り出して白朗を追撃した。追われた白朗は安徽省を離れて湖北省に入り、3月8日に老河口を占領した。このとき兵力は2万人に達していた。この後白朗は西進を決意して、3月17日に陝西省に入った。たびたび現地の駐防軍を破り、天水・岷県を経て甘粛省南部のチベット族居住地区に入った。しかし拠点を築くことに失敗し、武器も入手できなかったので、白朗は軍を引き返して河南省に戻った。白朗は袁世凱の防衛線を突破して6月に河南省に戻ることができたが、損失は甚大でやむなく軍を分散してゲリラ戦に移行した。やがて袁世凱軍に各個撃破され、白朗は宝豊の戦いで包囲に落ちる。包囲を突破した際に銃弾を浴びて負傷し、8月5日に石荘で死亡した。享年42。　この白朗の軍（白狼軍）に1913年10月頃から1914年1月初めまで、中国名「王鉄石」として入った日本人がいた。工藤鉄三郎である。工藤は後1932年に満洲国執政溥儀から「忠」名をもらい、戸籍上も工藤忠と改名した。工藤は南京の第二革命軍に参加し、革命軍の崩壊の後、漢口から白狼軍に向かい、江湖会（哥老会）の会員となってから河南省の荊紫関で白狼軍に入り、雲南の革命派2人とも会った。のち工藤は革命派竇家法とともに日本に行き、孫文と黄興に白狼軍との連携を働き掛けたが、孫文・黄興は殺戮・略奪・強姦・破壊を繰り返す白狼軍と手を握ることは、盛んに革命派と白狼軍の連携を宣伝している袁世凱政権の術中に陥るものだと拒否した。しばしば諸研究で強調されている孫文・黄興による白狼軍への働きかけということは、疑問なのである。 　以上は、山田勝芳「工藤忠資料から見た白狼軍（白朗軍）」（『東北アジア研究』17号、2013年）による。