HackerRank-
Question Link- https : //www.hackerrank.com/challenges/maximum-element/problem에서 질문을 해결하고있었습니다.
한 솔루션에서는 switch-case에서 'break'문을 사용했지만 다른 솔루션에서는 사용하지 않았습니다. break 문을 사용하지 않았을 때 해결책이 잘못되었습니다. 그 이유는 무엇입니까?
입력-
10
1 97
2
1 20
2
1 26
1 20
2
3
1 91
3
break 문 사용 -
#include <bits/stdc++.h>
using namespace std;
int main() {
int noOfTestCases;
cin>>noOfTestCases;
vector <int> st;
for(int x=0; x<noOfTestCases; x++){
int query;
cin>>query;
switch (query) {
case 1:
int number;
cin>>number;
if(st.empty()){
st.push_back(number);
}
else if(number > st[st.size()-1]){
st.push_back(number);
}
else{
st.push_back(st[st.size()-1]);
}
break;
case 2:
if(!st.empty()){
st.pop_back();
}
break;
case 3:
cout<<st[st.size()-1]<<endl;
}
}
}
//Output -
//26
//91
break 문없이 -
#include <bits/stdc++.h>
using namespace std;
int main() {
int noOfTestCases;
cin>>noOfTestCases;
vector <int> st;
for(int x=0; x<noOfTestCases; x++){
int query;
cin>>query;
switch (query) {
case 1:
int number;
cin>>number;
if(st.empty()){
st.push_back(number);
}
else if(number > st[st.size()-1]){
st.push_back(number);
}
else{
st.push_back(st[st.size()-1]);
}
case 2:
if(!st.empty()){
st.pop_back();
}
case 3:
cout<<st[st.size()-1]<<" "<<query<<endl;
}
}
}
//Output -
//0
//0
//0
//0
//0
//0
//0
//0
//0
//0
다음 코드를 고려하십시오.
switch (x) {
case 1:
std::cout << "one\n";
case 2:
std::cout << "two\n";
break;
case 3:
std::cout << "three\n";
}
경우 x
1 인이 모두 인쇄됩니다 one
및 two
. 그런 다음 break
문 으로 인해 스위치 블록을 종료합니다 . 참고 x
것입니다 하지 와 비교 2
"를"인쇄 후, 그것은 바로 가을-을 통해 것 "이"을 인쇄 할 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다