m0_66394588 2022-02-14 17:09 采纳率: 91.5%
浏览 22
已结题

请问怎么理解代码第十七行break的作用呢?

#include<stdio.h>
#include<stdbool.h>

int main()
{
    long long i,num;
    _Bool flag=1;
    
    printf("请输入一个数字:");
    scanf("%lld",&num); 
    
    for(i=2;i<num/2;i++)
    {
        if(num%i==0)
        {
            flag=0;
            break;//请问怎么理解代码第十七行break的作用呢?
        }
    }
    if(flag)
    {
        printf("%lld是一个素数\n",num);
    }
    else
    {
        printf("%lld不是一个素数\n",num);
    }
    return 0;
 } 

  • 写回答

4条回答 默认 最新

  • 发飙的恒星 2022-02-14 17:15
    关注

    14-17行意思:当一个数能够被除1和本身的数字整除,说明这个数不是素数,就把flag赋值0,break跳出循环。因为没有必须再循环了,因为已经可以被数整除了,这时候就必须break出去,提高执行效率。flag=0就会在下面的if判断中执行判断输出

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 2月22日
  • 已采纳回答 2月14日
  • 创建了问题 2月14日

悬赏问题

  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题
  • ¥15 企业资源规划ERP沙盘模拟
  • ¥15 树莓派控制机械臂传输命令报错,显示摄像头不存在
  • ¥15 前端echarts坐标轴问题
  • ¥15 ad5933的I2C
  • ¥15 请问RTX4060的笔记本电脑可以训练yolov5模型吗?
  • ¥15 数学建模求思路及代码
  • ¥50 silvaco GaN HEMT有栅极场板的击穿电压仿真问题