1. 程式人生 > >C++ where(true)與 switch結合使用實現在某種情況下的迴圈執行

C++ where(true)與 switch結合使用實現在某種情況下的迴圈執行

今天看開原始碼的時候看到一段程式碼有如下的結構。開原始碼塊太長,於是寫了一個測試程式測試了一下這種用法的作用,在此做個記錄。

 while(true){
   switch(){
           case:
           ...
   }
 }

while(true)和switch的結合使用實現某種或某集中情況下的迴圈執行,如下:

void test(int a)
{
  int b=0;
  while(true)
  {
  switch(a)
  {
      case 1: cout<<"1"<<endl;return;
      case 2: cout<<"2"<<endl;return;
      case 3: cout<<"3"<<endl;b++;
      case 4: 
      if(b==5)
      {
         cout<<"4"<<endl;return;
      }else{
         break;
      }
      default:cout<<"default"<<endl;return;
  }
  }
}

int main()
{
  test(3);
  return 0;
}

執行結果:
這裡寫圖片描述
在case為3的這種情況,一定要滿足一個b=5的條件,才能跳出迴圈,否則一直執行。

相關推薦

C++ where(true) switch結合使用實現某種情況迴圈執行

今天看開原始碼的時候看到一段程式碼有如下的結構。開原始碼塊太長,於是寫了一個測試程式測試了一下這種用法的作用,在此做個記錄。 while(true){ switch(){ case: ... } }

C語言++aa++的實現機制操作符結合優先順序

看到一道“經典Linux C“面試題,關於左值和右值的。 華為筆試題 1.寫出判斷ABCD四個表示式的是否正確, 若正確, 寫出經過表示式中 a的值(3分) int a = 4; (A)a += (a++); (B) a += (++a) ;(C) (a++) += a;

Celery學習---Celery django結合實現計劃任務功能

namespace display tor 必須 hat pip port 1-1 啟動 項目的目錄結構: 項目前提: 安裝並啟動Redis 安裝Django和Celery的定時任務插件 安裝方法一: pip直接安裝【安裝了pip的前提下】omc@omc-virtual

Celery學習--- Celery 最佳實踐之django結合實現異步任務

tar load modules bin min sta 版本差異 status linux django 可以輕松跟celery結合實現異步任務,只需簡單配置即可 同步執行和異步執行 註意:即使Celery的任務沒有執行完成,但是已經創建了任務ID。可以利用前臺的定時

MasonryAmazeUI結合實現瀑布流

都在 tof contain 部分 set maximum utf 百度 kit 做一個圖片列表展示,由於照片數量太多,決定用瀑布流來實現 由於之前沒有接觸過瀑布流,不知從何下手 百度一下大家都在用Masonry 官網 https://masonry.desandro.co

服務閘道器 Zuul Redis 結合實現 Token 許可權校驗

這兩天在寫專案的全域性許可權校驗,用 Zuul 作為服務閘道器,在 Zuul 的前置過濾器裡做的校驗。 許可權校驗或者身份驗證就不得不提 Token,目前 Token 的驗證方式有很多種,有生成 Token 後將 Token 儲存在 Redis 或資料庫的,也有很多用 JWT(JSON Web Token)

djangocelery結合實現非同步任務

celery 基本概念 Celery 是一個 基於python開發的分散式非同步訊息任務佇列,通過它可以輕鬆的實現任務的非同步處理, 如果你的業務場景中需要用到非同步任務,就可以考慮使用celery celery的優點       

Node操作MongoDB並express結合實現圖書管理系統

Node操作MongoDB資料庫 原文連結:http://www.xingxin.me/ Web應用離不開資料庫的操作,我們將陸續瞭解Node操作MongoDB與MySQL這是兩個具有代表性的資料庫,非關係型資料庫(NoSQL)及關係型資料庫(SQL)。這一節,我們主要了解node中使用MongoD

opencv dlib 結合實現人臉融合

融合流程檢測面部標記旋轉、縮放和轉換第二張影象,使之與第一張影象相適應調整第二張影象的色彩平衡,使之與第一個相匹配把第二張影象的特性混合在第一張影象中實現流程找到人臉矩陣使用dlib提取面部標記用Dlib實現了論文One Millisecond Face Alignment

Linux-C基礎知識學習:C語言作業-用switch語句實現——成績分等級,90+:優 80~89良上,70~79良,60~69及格,

Linux基礎知識學習 C語言作業: 用switch語句實現——成績分等級,90+:優 80~89良上,70~79良,60~69及格,<60不及格 #include <stdio.

ScrollViewHorizontalSrollView結合實現可橫豎向滑動的介面

<?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_

struts2ognl結合實現下載

首先完成我們的Action,繼承ActionSupport [java] view plain copy  print? private InputStream Is;      

如何使用Spring BootRabbitMQ結合實現延遲佇列

背景 何為延遲佇列? 顧名思義,延遲佇列就是進入該佇列的訊息會被延遲消費的佇列。而一般的佇列,訊息一旦入隊了之後就會被消費者馬上消費。 延遲佇列能做什麼?延遲佇列多用於需要延遲工作的場景。最常見的是以下兩種場景:延遲消費。比如: 使用者生成訂單之後

java實現【有三個執行緒ID分別是A、B、C,請有多線程式設計實現,在螢幕上迴圈列印10次ABC.】

該題應屬於生產者消費者模式一類 生產者消費者模式:根據標誌位來發訊息,實現對執行緒的控制。 直接貼答案了,請各位大蝦們指正哦。 建立三個執行緒 如下:ThreadA、ThreadB、ThreadC public class ThreadA implements Ru

Effective C++讀書筆記(九)實現部分(

Item29 為“異常安全”而努力是值得的 “異常安全”有兩個條件 1)不洩露任何資源。 2)不允許資料敗壞。 例如下列程式碼: void PrettyMenu::changeBackground(std::istream& imgSr

CString轉換為char*,在多位元組寬位元組兩種情況

 CString str("我愛中國");  //一、多位元組字符集情況下CString轉換為char*  //char *s=(LPSTR)(LPCTSTR)str;  //二、Unicode字符集情況下CString轉換為char*    //①  int n = st

Java程式碼優化-在某種情況避免Map的containsKey方法的使用

當要在HashSet或者HashMap中add/put之前判斷是否存在key時,可以直接使用add/put方法然後根據返回值來判斷,因為put/add方法會將以前節點的value返回(對於Set來說會將Object物件返回,涉及到HashSet的實現方式:用Ha

[Nginx]用Nginx實現應用結合的訪問控制 - 防盜鏈

計算公式 index user use 鏈接 vtk 兩個 link img 應用場景:圖片等資源須要設置權限,如:僅僅有認證過的用戶才幹訪問自己的圖片。 解決的方法:使用Nginx的防盜鏈模塊http_secure_link能夠實現,該模塊默認情況下不包括。故在

樹形ztree angularjs結合實現級數據異步加載,點擊復選框 填寫到輸入框裏

沒有 hide deb out IV UNC -s parent default html:<input value="" type="text" id="river_cut" onclick="

(簡)樹形ztree angularjs結合實現級數據,點擊復選框 填寫到輸入框裏

url let 輸入 樹形 fadeout ros mar 分隔符 3.4 html:<link href="vendors/zTreeStyle/zTreeStyle.css" rel="stylesheet" />生態