为何不可用if代替else if
查看原帖
为何不可用if代替else if
549521
boy♂Next♂dooor楼主2023/10/3 12:36
#include<bits/stdc++.h>
using namespace std;
int l,skip;
bool v;
int ans1,ans2;
string s;
int main()
{
	ios::sync_with_stdio(false);
	cin>>s;
	l=s.size();
	for(int i=0;i<l;i++)
	{
		if(skip)
		{
			if(s[i]=='(')
			{
				int x=1;
				while(x)
				{
					i++;
					if(s[i]=='(') x++;
					if(s[i]==')') x--;
				}
			}
			if(skip==1&&s[i]=='&')
			{
				//skip=0;
				ans1++;
			}
			if(skip==114514&&s[i]=='|')
			{
				/*skip=0;*/ans2++;	
			}
			if(s[i]==')')
			{
				skip=0;	
			}		
			
			if(s[i]=='|'&&skip==1) skip=0;
		}
		else
		{
			if(s[i]=='0') v=0;
			if(s[i]=='1') v=1;
			if(s[i]=='&'&&v==0) {
				skip=1;
				ans1++;
			} 
			if(s[i]=='|'&&v==1){
				skip=114514;
				ans2++;
			}
		}
	}
	cout<<v<<endl<<ans1<<" "<<ans2<<endl;
	return 0;
}

这个是70分代码,如果把if(skip)里面的if改成else if就AC了。请问一下这是为什么呢?这里前面的if成立后面的if不就一定不成立了吗,为什么要用else if来跳过判断呢?

2023/10/3 12:36
加载中...