八、迴圈(一)

来源:https://www.cnblogs.com/piaolaipiaoqu/archive/2023/11/14/17832898.html
-Advertisement-
Play Games

八、迴圈(一) 1、for迴圈 1)for迴圈語法 //for迴圈語法 for(初始化表達式;運行條件表達式;變動表達式) { 迴圈內容; } //示例 for(int i=0;i<10;i++) { std::cout<<i<<std::endl; } std::cout<<"迴圈結束"; ①列印 ...


八、迴圈(一)

1、for迴圈

1)for迴圈語法

//for迴圈語法
for(初始化表達式;運行條件表達式;變動表達式)
{
    迴圈內容;
}

//示例
for(int i=0;i<10;i++)
{
    std::cout<<i<<std::endl;
}
std::cout<<"迴圈結束";

①列印9-1

//列印9-1
#include <iostream>

int main()
{
    for (int i = 9; i > 0; i--)
    {
        std::cout << i << std::endl;
    }
}

②列印所有大寫字母

//列印所有大寫字母
#include <iostream>

int main()
{
    for (char i = 65; i <=90; i++)  //A的ascii碼為65
    {
        std::cout << i << std::endl;
    }
}

③列印所有大寫字母,但是每行只有五個字母

//列印所有大寫字母
#include <iostream>

int main()
{
    int count{ 0 };
    for (char i = 65; i <=90; i++)  //A的ascii碼為65
    {
       
        count++;
        if (count > 5)
        {
            std::cout << std::endl;
            count = 1;
        }
        std::cout << i;
    }
}

法二:

//列印所有大寫字母
#include <iostream>

int main()
{
	for (char a{ 65 }; a < 91; a++)
	{
		if ((!((a - 65) % 5)) && (a > 65)) //取餘數,如果餘數=0,則進行換行
		{
			std::cout << std::endl;
		}
		std::cout << a;
	}
}

④要求用戶輸入一個大寫字母,列印從這個字母後的所有大寫字母,比如用戶輸入C,那麼屏蔽上列印DEFG..Z

//輸入一個大寫字母,列印從這個字母後的所有大寫字母
#include <iostream>

int main()
{
	char userIn;
	std::cout << "請輸入一個大寫字母:";
	std::cin >> userIn;
	for (char a = userIn + 1; a < 91; a++)
	{
		if (!((a - userIn - 1) % 5) && (a > (userIn + 1)))
		{
			std::cout << std::endl;
		}
		std::cout << a;
	}
}

2、for迴圈之網銀證書密碼攻擊

需求:設計一個系統來模擬網銀密碼被攻擊的場景,用戶輸入一個6位數字密碼,然後我們破解它的密碼並顯示出來

#include <iostream>
#include <conio.h>
int main()
{
	int password, repassword;
	std::cout << "請設置一個6位數字的密碼:";
	std::cin >> password;
	std::cout << "請再次輸入你的密碼:";
	std::cin >> repassword;
lset:
	if (password == repassword)
	{
		system("cls");
		//破解程式
		std::cout << "破解程式啟動";
		for (int hackpass = 0; hackpass < 1000000; hackpass++)
		{
			if (hackpass == password)
			{
				std::cout << "你的密碼為:" << hackpass << std::endl;
				goto lexit;
			}
		}
	}
	else
	{
		goto lset;
	}
lexit:
	std::cout << "密碼破解成功,程式退出!";
}

3、for迴圈補充知識

1)迴圈的嵌套

①列印九九乘法表,輸出結果如下

#include <iostream>
#include <iomanip>

int main()
{
	std::cout << std::setfill('0');
	for (int y{}; y < 10; y++)
	{
		for (int x{}; x < 10; x++)
		{
			std::cout << std::setw(3)<<x * y << " ";
		}
		std::cout << std::endl;
		
	}
}

2)跳出for迴圈的三種方式

能力 語句 說明
1 continue 跳出本次迴圈,進入下一次迴圈
2 break 跳出迴圈
3 goto 跳出嵌套迴圈,即跳出所有迴圈

①continue:跳出本次迴圈

//continue:跳出本次迴圈
#include <iostream>
#include <iomanip>

int main()
{
	std::cout << std::setfill('0');
	for (int y{}; y < 10; y++)
	{
		if (y == 0) continue;
		for (int x{}; x < 10; x++)
		{
			if (x == 0) continue;
			std::cout << std::setw(3) << x * y << " ";
		}
		std::cout << std::endl;

	}
}

②break:跳出迴圈

//break:跳出迴圈
#include <iostream>
#include <iomanip>

int main()
{
	std::cout << std::setfill('0');
	for (int y{}; y < 10; y++)
	{
		for (int x{}; x < 10; x++)
		{
			if (x == 5) break;
			std::cout << std::setw(3) << x * y << " ";
		}
		std::cout << std::endl;

	}
}

註:break只能跳出本層迴圈,但是無法跳出上層迴圈

③goto:可以跳出所有迴圈

3)for迴圈的變體

//正常for迴圈
for(初始化;條件;變動表達式)
{
    
}

//變體一:無初始化,只要前面聲明過,for中就不需要初始化
for(;條件;變動表達式)
{
    
}

//變體二:無變動表達式
for(;條件;)       //死迴圈
{
    
}

//變體三:
for(;;)       //無條件執行,中間是一個條件表達式,即bool值
{
    
}

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • vue 最有代表性質的就是.VUE 的文件,每一個vue文件都是一個組件,那麼vue 組件的編譯過程是什麼樣的呢 Vue 單文件組件 (SFC)和指令 ast 語法樹 一個 Vue 單文件組件 (SFC),通常使用 *.vue 作為文件擴展名,它是一種使用了類似 HTML 語法的自定義文件格式,用於 ...
  • 這裡給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 前言 Vue2 將在 2023 年年底停止維護了,但是 Vue2 的代碼卻不會在 2023 年消失,還會越來越多;難以想象幾十萬行或者幾百萬行的 Vue2 代碼遷移到 Vue3,這是不可能辦到的; 老一點的前端程式員肯定經歷過把大型項目從 ...
  • 從一個假死頁面引發的思考: 作為前端開發,除了要攻剋頁面難點,也要有更深的自我目標,性能優化是自我提升中很重要的一環; 在前端開發中,會偶遇到頁面假死的現象, 是因為當js有大量計算時,會造成 UI 阻塞,出現界面卡頓、掉幀等情況,嚴重時會出現頁面卡死的情況; ...
  • 本文介紹使用canvas的drawImage進行視頻截圖,並用toDataURL和toBlob轉化為圖片地址的方法,且重點介紹了將bold信息轉化為圖片地址的方法。 ...
  • 事件迴圈不是瀏覽器獨有的,從字面上看,“迴圈”可以簡單地認為就是重覆,比如for迴圈,就是重覆地執行for迴圈體中的語句,所以事件迴圈,可以理解為重覆地處理事件,那麼下一個問題是,處理的是什麼事件,事件的相關信息從哪裡獲取。 ...
  • 最近在群里,有個小伙伴問了這麼一道很有趣的問題: CSS 能否實現,容器再某個高度下是某種表現,一旦超出某個高度,則額外展示另外一些內容 為了簡化實際效果,我們看這麼一張示意效果圖: 可以看到,當容器高度沒有超過某一個值時,沒有箭頭圖標。反之,箭頭圖標出現。 這個效果在很多場景都會出現,可以算是一個 ...
  • 項目代碼同步至碼雲 weiz-vue3-template 關於tsconfig的配置欄位可查看其他文檔,如 typeScript tsconfig配置詳解 tsconfig.json 文件修改如下: { "compilerOptions": { "target": "ESNext", // 將代碼編 ...
  • 本文介紹了結構型設計模式中的代理設計模式,講解了靜態代理、JDK的動態代理和cglib的動態代理,並用代碼進行演示。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...