曦~~ 发表于 2021-4-14 21:09:04

循环判断

if(5==choice) break;中的5==choice,该如何理解??
求大佬解释一下。。。

wp231957 发表于 2021-4-14 21:12:34

就是它俩都是5时,条件成立
choice==5和5==choice是一个样子的

昨非 发表于 2021-4-14 21:18:53

字面意思,choice等于0

曦~~ 发表于 2021-4-15 12:34:05

while(1)
        {
                menu();
             scanf("%d",&choice);
              if(5==choice) break;
       switch(choice)
      {
              case 1:printf("请输入要入栈几位数字:");
                         scanf("%d",&n);printf("要输入的数字为:");
                         for(int i=0;i<n;i++)
                           scanf("%d",&x);
                                     Push(S,x);
                                  printf("入栈成功!");
                        system("pause");break;
              case 2:printf("请输入要出栈几位数字:");
                           scanf("%d",&m);
                           Pop(S,m);
                            printf("出栈的数字为:%d",m);
                        system("pause");break;
              case 3:GetTop(S,e);
                             printf("栈顶元素为:%d",e);
                         system("pause");break;
                case 4:judStack(S);break;
      case 5:printf("感谢使用该系统!");break;
          default:printf("输入有误请输入1 ~ 4\n");break;
           }
        }
就是这个里面的if(5==choice) break;,判断条件为啥不是choice大于5,或其他数呢?写5==choice就是只能输入一到五才能执行吗?

肖-肖 发表于 2021-4-15 14:51:30

本帖最后由 肖-肖 于 2021-4-15 15:03 编辑

曦~~ 发表于 2021-4-15 12:34
while(1)
        {
                menu();


写5==choice就是只能输入一到五才能执行吗?
不是,你随便输入数字(整数),只是分几种情况而已
第一种:你输入5:会打印-》直接退出了
第二种:你输入1:进行入栈操作-》然后退出switch但不会退出while-》还会让你输入
第三种:你输入2:进行出栈操作-》然后退出-》然后退出switch但不会退出while-》还会让你输入
第四种:你输入3:打印栈顶-》-》然后退出switch但不会退出while-》还会让你输入
第五种:你输入4:judStack(S)-》然后退出switch但不会退出while-》还会让你输入
第六种:你输入其它的数字-》打印输入有误请输入1~4-》然后退出switch但不会退出while-》还会让你输入


曦~~ 发表于 2021-4-16 08:45:14

ok,明白了,谢谢。。
页: [1]
查看完整版本: 循环判断