Я пишу линейную и квадратичную программу хеш-таблицы зондирования.Перерыв if statement C++ error
Это для цикла, который я использовал для линейной функции зондирования, и он отлично работает.
//when there's a collision increase i by 1 until finding empty slot
for(i = (hashVal % tableSize+1) % tableSize; i <tableSize; i++)
if(a[i] == -1){
a[i] = hashVal;
break;
}
так что я написал цикл снова в квадратичной функции ощупывания для решения столкновения
//when there's a collision increase i by i^2
j = 0;
for(i=((hashVal % tableSize+1) % tableSize); i < tableSize; i++)
j = i^2;
if(a[j] == -1){
a[j] = hashVal;
break;
}
Но когда я компилирую квадратичное зондирование, я получаю эту ошибку
error: 'break' statement not in loop or switch statement
I я действительно запутался, почему он вызывает ошибку во втором, пока он отлично работает в линейном зондировании. Может ли кто-нибудь объяснить, почему?
Вам не хватает фигурных скобок после цикла for. – sebastian