#pragma warning(disable: 4996)
#include<stdio.h>
int main(){
double array1[8] = {0};
double data;
double lg_data=0;
int i = 0, j = 0;
int count = 1;
int lg_count = 1;
printf("7개의 양의 실수를 입력하세요.(마지막 원소는 자동으로 -1이 됩니다.)\n");
for (i = 0; i < 8; i++){
if (i == 7){
array1[i] = -1;
}
else{
scanf("%lf", &array1[i]);
}
}//end of loop
for (i = 0; i < 8; i++){
count = 1;
for (j = 0; j < i; j++){
if (array1[i] == array1[j]){
count++;
if (count >= lg_count){
lg_count = count;
data = array1[i];
if (data >= lg_data){
lg_data = data;
}
}
}
else{
if (array1[i] >= lg_data){
lg_data = array1[i];
lg_count = count;
}
}
}//end of for(j)
}//end of for(i)
printf("%lf %d\n", lg_data, lg_count);
return;
如果有值与if (array1[i] == array1[j])
语句一致,我想停止for循环,即使仍然具有与else语句一致的值。我已经尝试将break语句放在if语句中......但它没有用。
我怎么能解决这个问题?
答案 0 :(得分:1)
break语句终止执行最近的封闭do
,for
,switch
或while
语句。
请看以下示例:
for (i = 0; i < 8; i++){
for (j = 0; j < i; j++){
break; // this will break loop "j"
// whereas loop "i" will still iterate
}
}
因此,如果你想要停止两个循环,你可以这样做:
flag = false;
for (i = 0; i < 8; i++){
for (j = 0; j < i; j++){
if(condition == TRUE_FOR_BREAK) {
flag = true;
break; // "j" loop break
}
}
if(flag) {
break; // "i" loop break
}
}
答案 1 :(得分:1)
一种选择是将两个嵌套循环拆分为单独的函数。通过从函数返回,执行将转义两个for循环:
void loops() {
for (i = 0; i < 8; i++){
count = 1;
for (j = 0; j < i; j++){
if (array1[i] == array1[j]){
...
return;
...
}
}
}
}
...
loops()
...
答案 2 :(得分:0)
使用break
关键字退出最近的内部循环。但是,如果在该内部循环之外还有其他循环,则需要将变量设置为特定值,并确保所有外部循环始终检查此变量并在设置为该值时退出循环。
答案 3 :(得分:0)
把这段代码:
for (i = 0; i < 8; i++){
count = 1;
for (j = 0; j < i; j++){
if (array1[i] == array1[j]){
count++;
if (count >= lg_count){
lg_count = count;
data = array1[i];
if (data >= lg_data){
lg_data = data;
}
}
}
else{
if (array1[i] >= lg_data){
lg_data = array1[i];
lg_count = count;
}
}
}//end of for(j)
}//end of for(i)
在单独的函数中并在条件后返回if(array1 [i] == array1 [j])。如果您使用VS,则可以使用“提取方法”选项。
答案 4 :(得分:-1)
您应该可以使用break
EG:
for(int i = 0; i<50;i++)
{
if(i==10)
{
break;
}
}
这应该迭代直到i euqals 10,然后突破循环
答案 5 :(得分:-1)
如果要停止执行最近的循环语句,可以使用break;
语句。
请考虑以下代码段:
int i =1;
while (true) {
i++;
if (i == 5) {
break;
}
}