for(表達式1;表達式2;表達式;)分別省略表達式1,2,3都什么意思
首先看到你的問題我就覺得你想進行騷操作。
(1)省略1是可以的,但是需要在for語句之前定義變量。如:
int i=0;
for(;i<10;i++){};
(2)省略2會死循環,2是判斷條件,為假的時候退出循環。省略會默認判斷一直為真,循環一直進行。這個時候可以在for循環內手動終止循環。
for(int i=0;;i++){……(前面想寫什么程序自己寫)
if(i>=10)break;}(break可以用來終止循環,就是如果括號內為真就退出for循環,這就是手動終止)
(3)省略3會死循環,因為沒有3的話,每次循環后變量i不會增加,那么判斷條件2會一直為真,循環無限進行。但是也可以在for循環內部進行手動添加。
我寫了個小程序,用來求m的質因數之和,比如12=3*2*2,質因數和為7。
我們的替代for循環第3條語句的就是else后面的語句。
這樣寫程序有一個好處,就是當if語句判斷為真的時候,t的值不會變化,循環會一直進行,直到if語句判斷為假,t的值才會增加,當t的值增加到比m大時就結束循環。
總的來說就是可以保證for循環進行時的一部分階段t的值不變,循環仍然可以進行。
#include<iostream>
using namespace std;
int main(){
int m=10,sum=0;
for(int t=2;t<=m;){//省略表達式3時則必須保證循環過程中不會死循環
if(m%t==0){
sum+=t;
m/=t;
}
else t++;}
cout<<sum;
return 0;
}
但是一般還是不要省略,有時候亂改會死機。
死機不可怕,可怕的是死機前沒保存。
打字不易,給個贊吧。