欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言中的while循環(huán)語句示例詳解

 更新時間:2023年06月29日 09:47:53   作者:鐘愛陳奕迅  
這篇文章主要介紹了C語言中的while循環(huán)語句,主要包括while循環(huán)的基本信息及常見問題,本文結合實例代碼給大家講解的非常詳細,需要的朋友可以參考下

日常生活中除了選擇之外,還有很多循環(huán)做的事情,比如說三點一線的生活,日復一日的工作,每天都在重復著一樣的事情,這就是循環(huán),那么C語言中的循環(huán)語句是什么樣的呢,開始今天的分享。

while循環(huán)

基本語法格式

while(表達式)
{
    語句;
}

還是使用一個代碼來解釋while循環(huán)的執(zhí)行過程:

switch(表達式)
{
case 常量1:語句1
case 常量2:語句2
default:語句n   
    break;
}

通過代碼可以看到,表達式i<=10在i==1的情況下判斷為真,所以循環(huán)體中的語句執(zhí)行,最后打印出1-10,那么我們可以知道,當表達式為真時,while循環(huán)才會執(zhí)行,當表達式為假,循環(huán)則不會執(zhí)行。那么如果表達式是一個非0的數,循環(huán)會不會一直執(zhí)行呢?

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	while (1)
	{
		printf("a");
	}
	return 0;
}

通過運行結果可以看到,當表達式為1時,while循環(huán)會一直執(zhí)行循環(huán)體,也就變成了一個死循環(huán)。

while循環(huán)中的break;

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int i = 1;
	while (i<=10)
	{
		printf("%d\n", i);
		if (i==5)
		{
			break;
		}
		i++;
	}
	return 0;
}

通過前面的代碼我們知道這個代碼是用于打印1-10,那么如果在i==5的時候加入break,會發(fā)生什么呢?

 可以看到當加入了break之后,當執(zhí)行到i==5時,后面的循環(huán)并沒有執(zhí)行,那么可以理解為break語句的意思是終止循環(huán)。

while循環(huán)中的continue語句

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int i = 1;
	while (i<=10)
	{
		if (i == 5)
		{
			continue;
		}
		printf("%d\n", i);
		i++;
	}
	return 0;
}

 上面我們知道了break的作用,那么continue和break有什么區(qū)別呢,通過運行結果可以看到,當輸出到4時,代碼進入了一個死循環(huán),而不是像break一樣終止,這是為什么呢?我來解釋一下,continue的意思為繼續(xù),當代碼執(zhí)行到continue時,會跳過本次循環(huán)而繼續(xù)下一次,從代碼中看到,當i==5時,循環(huán)跳過,那么i++不會執(zhí)行,i的值就不會改變,那么i==5回到表達式判斷5<10,進入循環(huán),那么這個時候i==5就又會觸發(fā)continue,然后i++又不能執(zhí)行,就造成i的值一直為5,一直跳過,就成了一個死循環(huán)。

那么while循環(huán)的基本信息我們知道了,我們來實現(xiàn)一下下面兩個問題。

第一:用戶輸入一個數字,求該數字所擁有的位數之和。

那么從題目中可以知道,一個數可能會有很多位數,所以只計算一次是不行的,就需要循環(huán)計算,并且,求位數之和就需要將數字每個位數分開進行相加,知道了這些,那我們來具體實現(xiàn)一下。

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int numb;//定義一個int類型的整數
	int sum = 0;//定義一個int類型的變量用于接受位數之和
	printf("Please input\n");//讓用戶輸入
	scanf("%d", &numb);//接受用戶輸入的整數
	while (numb!=0) 
	{
		sum += numb % 10;//將整數的位數分離并加在sum中
		numb /= 10;//將已經計算過的位數去除
	}
	printf("該數的位數之和為%d\n", sum);//輸出sum的值
	return 0;
}

寫這種代碼之前呢我們需要舉例進去算一下,那么我就以123為例子,當輸入的numb為123時,要計算1+2+3,要將每一位數分離,那么先將個位數分離,那么123/10的余數便是個位數3,這時我們就得到了個位數3,將3加進sum里面,那么3已經加完了,就要將3去掉,那么123/10的商為12便將3去掉,重復執(zhí)行這個結果,當最后只剩1時,1/10為0,所以循環(huán)結束,那么如果位數不止為3位呢,即使這個數為n位,將最高位/10也一定為0,那么當計算到最高位時,相加已經完成,所以最高位/10為0便是循環(huán)條件,如果分離出來的數值/10不為0,說明至少有兩位以上的數值沒有分開,所以循環(huán)條件為numb==0。

 第二個,這個代碼非常的好玩并且有意思,要輸出下面的圖片

 那么這個代碼要怎么寫呢,我們可以看到,最開始輸出*號,然后每一次輸出用一個字符代替*號,最后輸出一個I  Love  You。那么我們可以將*好和字符串各自定義為一個字符類型的數組,每一次輸出時將數組1的最左值用數組2的最左值替換,同樣最右邊也是一樣。那么數組中的值通過下標調用,下標從0開始,每替換一次下標要加1,知道了這些,我們就可以實現(xiàn)代碼。

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	char arr1[] = "I  Love  You";
	char arr2[] = "************";
	int left = 0;
	//int right = sizeof(arr1) / sizeof(arr1[0]) - 2;//[a,b,c,\0]
	int right = strlen(arr2)-1;//右下標
	printf("%s\n", arr2);
	printf("\n");
	while (left<right)
	{
		arr2[left] = arr1[left];
		arr2[right] = arr1[right];
		left++;
		right--;
		printf("%s\n", arr2);
		printf("\n");
	}
	return 0;
}

那么每次替換數值時,左標都會加1,右標都會減1,總會有一次兩者相等,那便是最后一個字符替換,所以循環(huán)條件為left<right。

以上就是今天的所有內容,那么屏幕前的你們對while循環(huán)是否也有一定的理解了呢。

到此這篇關于C語言中的while循環(huán)語句的文章就介紹到這了,更多相關C語言while循環(huán)語句內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • C語言中#pragma?pack(1)的用法與注意點

    C語言中#pragma?pack(1)的用法與注意點

    #pragma用于指示編譯器完成一些特定的動作,下面這篇文章主要給大家介紹了關于C語言中#pragma?pack(1)的用法與注意點的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-02-02
  • 詳解NSString 與C++ string字符串的互轉

    詳解NSString 與C++ string字符串的互轉

    這篇文章主要介紹了詳解NSString 與C++ string字符串的互轉的相關資料,需要的朋友可以參考下
    2017-07-07
  • C++ push方法與push_back方法的使用與區(qū)別

    C++ push方法與push_back方法的使用與區(qū)別

    這篇文章主要介紹了C++ push方法與push_back方法的使用與區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • C語言中的斷言函數assert詳解

    C語言中的斷言函數assert詳解

    assert?是一個非常有用的工具,可以幫助開發(fā)人員在早期發(fā)現(xiàn)和糾正程序中的邏輯錯誤,在調試階段通過斷言可以驗證程序中的假設條件是否成立,提高代碼的可靠性和可維護性,這篇文章主要介紹了C語言中的斷言函數assert,需要的朋友可以參考下
    2024-07-07
  • C++設計一個簡單內存池的全過程

    C++設計一個簡單內存池的全過程

    利用C/C++開發(fā)大型應用程序中,內存的管理與分配是一個需要認真考慮的部分,下面這篇文章主要給大家介紹了關于C++設計一個簡單內存池的全過程,需要的朋友可以參考下
    2021-09-09
  • C++實現(xiàn)添加桌面右鍵新建菜單

    C++實現(xiàn)添加桌面右鍵新建菜單

    本文給大家匯總了3個版本的C++實現(xiàn)添加桌面右鍵新建菜單的代碼,陸陸續(xù)續(xù)寫的,有需要的小伙伴可以根據自己的需求來選擇
    2016-01-01
  • 基于C語言實現(xiàn)的貪吃蛇游戲完整實例代碼

    基于C語言實現(xiàn)的貪吃蛇游戲完整實例代碼

    這篇文章主要介紹了基于C語言實現(xiàn)的貪吃蛇游戲完整實例代碼,對于學習游戲開發(fā)的朋友有一定的借鑒價值,需要的朋友可以參考下
    2014-08-08
  • C++獲取系統(tǒng)時間的三種方法

    C++獲取系統(tǒng)時間的三種方法

    在?C++?編程中,獲取系統(tǒng)時間是一項常見任務,無論是記錄日志、計算程序運行時間,還是實現(xiàn)計時功能,都需要獲取當前的系統(tǒng)時間,本文將介紹幾種在?C++?中獲取系統(tǒng)時間的方法,并提供相應的代碼示例,需要的朋友可以參考下
    2024-09-09
  • C語言數據結構與算法之鏈表(一)

    C語言數據結構與算法之鏈表(一)

    鏈表是線性表的鏈式存儲方式。鏈表的內存是不連續(xù)的,前一個元素存儲地址的下一個地址中存儲的不一定是下一個元素。小編今天就將帶大家深入了解一下鏈表,快來學習吧
    2021-12-12
  • 關于VS+QT5應用程序換圖標的解決方案

    關于VS+QT5應用程序換圖標的解決方案

    這篇文章主要介紹了VS+QT5應用程序換圖標的處理方案,本文給大家提供了兩種解決方案供大家參考,每種方法給大家講解的都非常詳細,需要的朋友可以參考下
    2021-12-12

最新評論