为什么我这个只会显示过大而永远不会过小?

#include
using namespace std;
#include //添加随机数种子需要加的头文件
int main()
{//系统随机生成一个1到100之间的数,玩家进行猜测,如果猜错,提示玩家过大或过小,猜对表示祝贺

//添加随机数种子, 利用当前系统时间生成随机数,防止每次生成的随机数都一样
srand((unsigned int)time(NULL));

//系统生成随机数
int num = rand() % 100 + 1;//rand() % 100 生成一个099的随机数
//玩家进行猜测
int val = 0;

while (1)
{
    cin >> val;

    //判断玩家的猜测
    //猜对,退出游戏
    //猜错,猜的结果过大或过小,返回第二步
    if (val > num)
    {
        cout << "过大" << endl;
    }
    else if (val > num)
    {
        cout << "过小" << endl;
    }
    else
    {
        cout << "正确" << endl;
        break;//用来退出循环
    }
}
system("pause");
return 0;

因为你过大过小的条件一样,按顺序执行,只会执行输出过大

大还是小的条件那儿一样