C语言,输入与输出的结果不对应,结果全部都显示了出来

我想要输入购买装备刀,弹出相应的结果
都是无论输入什么都把什么结果弹了出来

#include<stdio.h>
int main(void)
{
int choice, i;
double price;

printf("需要购买哪些商品?\n");
printf("你现在的余额是100\n");
printf("[1]Select dao :price 15\n");//刀
printf("[2]Select jian :price  20\n");//剑
printf("[3]Select qiang :price  50\n");//枪
printf("[4]Select pao :price  100\n");//炮
printf("[5]Select quantao : price  10\n");//拳套
printf("[6]Select daodan : price  200\n");//导弹 
printf("[0]exit\n");
for (i = 1; i <= 7; i++) {
    printf("Enter chioice:");
    scanf_s("%d", &choice);
    if (choice == 0)
        break;
    switch (choice) {
    case 1: price = 85; break;
    case 2:price = 80; break;
    case 3: price = 50; break;
    case 4: price = 0; break;
    case 5: price = 90; break;
    case 6: price = -100; break;
    default: price = 0; break;
    }
    printf("price=%0.lf\n", price);
}
printf("Thanks\n");
printf("现在外面充满了怪兽,少年拿起自己的武器进攻吧\n");

if (choice = 1) {
    printf("你的刀是秦朝打造\n");
    printf("时间过久,刀已经生锈\n");
    printf("经过敌方强烈打击,刀已经损坏\n");
    printf("你已经战败\n");
    if (choice = 2) {
        printf("你的剑是秦朝打造\n");
        printf("时间过久,剑已经生锈\n");
        printf("经过敌方强烈打击,刀已经损坏\n");
        printf("你已经战败\n");
    }
}
return 0;

}

img

虽然我还是没搞懂你这个到底要干啥,但是我看到了两个问题,一个就是你的 if 判断语句里面的等号要写两个,一个等号是赋值,所以每次赋值都会成功,这就导致 if 后面的语句都会执行,所以要改成两个等号,还有一个就是,你的 if choice等于二写到了等于一里面,这个在判断的时候应该是有问题的,当你输入 2 的时候,想要一把剑,但是只有choice 等于1了之后才有机会判断是不是等于2,所以这里建议你把choice从等于一的括号里拿出来
如果你还有什么问题欢迎叨扰

是否这么改:

#include<stdio.h>
int main(void)
{
    int choice=1, i;
    double price;
    while(choice)
    {
         printf("需要购买哪些商品?\n");
         printf("你现在的余额是100\n");
         printf("[1]Select dao :price 15\n");//刀
         printf("[2]Select jian :price  20\n");//剑
         printf("[3]Select qiang :price  50\n");//枪
         printf("[4]Select pao :price  100\n");//炮
         printf("[5]Select quantao : price  10\n");//拳套
         printf("[6]Select daodan : price  200\n");//导弹
         printf("[0]exit\n");
         printf("Enter chioice:");
         scanf("%d", &choice);
         switch (choice) {
          case 1: price = 85;
                  printf("你的刀是秦朝打造\n");
                  printf("时间过久,刀已经生锈\n");
                  printf("经过敌方强烈打击,刀已经损坏\n");
                  printf("你已经战败\n");
                  break;
          case 2: price = 80;
                  printf("你的剑是秦朝打造\n");
                  printf("时间过久,剑已经生锈\n");
                  printf("经过敌方强烈打击,刀已经损坏\n");
                  printf("你已经战败\n");
                  break;
          case 3: price = 50; break;
          case 4: price = 0;  break;
          case 5: price = 90; break;
          case 6: price = -100;break;
         default: price = 0; choice=0; break;
        }
        printf("price=%0.lf\n", price);
    }
    printf("Thanks\n");
    printf("现在外面充满了怪兽,少年拿起自己的武器进攻吧\n");
    return 0;
}