精华内容
下载资源
问答
  • 使用while循环的注意事项:
    千次阅读
    2015-03-12 18:50:52

                                           使用while循环的注意事项:

     

    (1)表达式不可以为空,表达式为空不合法;

    (2)表达式可以用非0代表逻辑值真(true),用0代表逻辑值假(false);

    (3)循环体中必须有改变条件表达是值得语句,否则将成为死循环

     例如:

         while(1){......}

        是一个无限循环语句。

         while(0){......}

        是一个不会进行循环的语句。

                                           使用do.....while循环的注意事项:

    (1)循环先执行循环体,如果循环条件不成立,循环体已经执行一次了,使用时注意变量变化;

    (2)表达式不可以为空,为空不合法;

    (3)表达式可以用非0代表逻辑值真(true),用0代表逻辑值假(false);

    (4)循环体中必须有改变条件表达是值得语句,否则将成为死循环;

    (5)循环语句要有分号“;”

    更多相关内容
  • 判断数学表达式是否合法

    万次阅读 2017-06-16 10:11:48
    要求:输入一个表达式,判断这个表达式是否数学表达式 思路:判断每一个字符,如果... * 检查表达式是否合法合法返回true * @param expression * @return */ private boolean checkExpression(String expression)

    要求:输入一个表达式,判断这个表达式是否数学表达式

    思路:判断每一个字符,如果是数字,根据数字规则判断;如果是运算符,根据运算符规则判断。方法比较笨

    代码实现如下:

    /**
     * 检查表达式是否合法,合法返回true
     * @param expression
     * @return
     */
    private boolean checkExpression(String expression) {
        //去除空格
        expression = expression.replaceAll(" ","");
    
        Set<Character> operate_set = new HashSet<>();
        operate_set.add('-');
        operate_set.add('+');
        operate_set.add('*');
        operate_set.add('/');
    
        //拆分字符串
        char[] arr = expression.toCharArray();
        int len = arr.length;
    
        //前后括号计数,用来判断括号是否合法
        int checkNum=0;
    
        //数字集合
        List<Character> digit_list = new ArrayList<>();
        StringBuffer stringBuffer = new StringBuffer();
        //循环判断
        for (int i = 0; i < len; i++) {
            if(Character.isDigit(arr[i])|| arr[i] == '.'){ //数字和小数点判断
                //把数字和小数点加入到集合中,为了下一步判断数字是否合法
                digit_list.add(arr[i]);
            }else { //非数字和小数点
                //如果集合中有值,取出来判断这个数字整体是否合法
                if(digit_list.size()>0) {
                    //判断字符串是否合法
                    boolean result = getNumberStringFromList(digit_list);
                    if(result){
                        //如果合法,清空集合,为了判断下一个
                        digit_list.clear();
                    }else{
                        //不合法,返回false
                        return false;
                    }
                }
    
                if (arr[i] == '+' || arr[i] == '*' || arr[i] == '/') {
                    //判断规则(1.不能位于首位 2.不能位于末尾 3.后面不能有其他运算符 4.后面不能有后括号)
                    if (i == 0 || i == (len - 1) || operate_set.contains(arr[i + 1]) || arr[i + 1] == ')') {
                        System.out.println("error type : '+' or '*' or '/' ->"+ arr[i]);
                        return false;
                    }
                } else if (arr[i] == '-') {
                    //减号判断规则(1.不能位于末尾 2.后面不能有其他运算符 3.后面不能有后括号)
                    if (i == (len - 1) || operate_set.contains(arr[i + 1]) || arr[i + 1] == ')') {
                        System.out.println("error type : '-' ->"+ arr[i]);
                        return false;
                    }
    
                } else if (arr[i] == '(') {
                    checkNum++;
                    //判断规则(1.不能位于末尾 2.后面不能有+,*,/运算符和后括号 3.前面不能为数字)
                    if (i == (len - 1) || arr[i + 1] == '+' || arr[i + 1] == '*' || arr[i + 1] == '/' || arr[i + 1] == ')'||(i != 0 && Character.isDigit(arr[i-1]))) {
                        System.out.println("error type : '(' ->"+ arr[i]);
                        return false;
                    }
                } else if (arr[i] == ')') {
                    checkNum--;
                    //判定规则(1.不能位于首位 2.后面不能是前括号 3.括号计数不能小于0,小于0说明前面少了前括号)
                    if (i == 0 || (i < (len - 1) && arr[i + 1] == '(') || checkNum < 0) {
                        System.out.println("error type : ')' ->"+ arr[i]);
                        return false;
                    }
                }else{
                    //非数字和运算符
                    System.out.println("error type : not number and operator ->"+ arr[i]);
                    return false;
                }
            }
        }
    
        //如果集合中有值,取出来判断这个数字整体是否合法
        if(digit_list.size()>0) {
            //判断字符串是否合法
            boolean result = getNumberStringFromList(digit_list);
            if(result){
                //如果合法,清空集合,为了判断下一个
                digit_list.clear();
            }else{
                //不合法,返回false
                return false;
            }
        }
    
        //不为0,说明括号不对等,可能多前括号
        if(checkNum!=0){
            return false;
        }
        return true;
    }
    
    /**
     * 把集合中的字符,拼接成字符串,并校验字符串是否是数值
     * @param list
     * @return
     */
    private boolean getNumberStringFromList(List<Character> list){
        //如果集合中有值,取出来判断这个数字整体是否合法
        if(list != null){
            StringBuffer stringBuffer = new StringBuffer();
            for(Character character : list){
                stringBuffer.append(character);
            }
            //正则判断数字是否合法
            boolean result = isNumber(stringBuffer.toString());
    
            if(!result){
                System.out.println("error type: digit ->"+stringBuffer.toString());
            }
            return result;
        }
        return false;
    }
    
    /** * 判断字符串是否为整数,浮点数类型,是返回true * @param str * @return */public static boolean isNumber(String str){ Pattern pattern = Pattern.compile("^-?([1-9]\\d*\\.\\d+|0\\.\\d*[1-9]\\d*|[1-9]\\d*|0)$"); Matcher isNum = pattern.matcher(str); if( !isNum.matches() ){ return false; } return true;}

    测试案例: 

    false案例:

    2+2.

    2+000.3

    2+0023

    2+a

    2)+1  

    +2-3

    2+(3

    2+4)

    2+6/

    2+6+

    2+6*

    2+()+3

    2+(3+3)+8)+9

    等。


    展开全文
  • 循环控制语句 在程序设计中,如果需要重复执行某些操作,就要用到循环结构。使用循环结构时,要明确两个问题:需要重复执行的是哪些操作(循环体)?这些操作在什么情况下执行(循环条件)。 ...

    循环控制语句

    在程序设计中,如果需要重复执行某些操作,就要用到循环结构。使用循环结构时,要明确两个问题:需要重复执行的是哪些操作(循环体)?这些操作在什么情况下执行(循环条件)?。

    while语句

    一般形式:
    while(表达式)
    	循环体语句;
    while(表达式)
    {
    	循环体语句;
    }
    

    表达式的值为 真 时,循环执行,知道表达式的值为 假 时终止执行并执行下一条语句。
    应用
    输入成绩,根据输入的成绩判断分数所在等级 优秀(score>=90)、良(90>score>=70)、及格(70>score>=60)、不及格(60>score>=40)、很差(40>score>=0)
    例:

    #include <stdio.h>
    #include <stdlib.h>
    //输入成绩,根据输入的成绩判断分数所在等级  优秀(score>=90)、良(90>score>=70)、及格(70>score>=60)、不及格(60>score>=40)、很差(40>score>=0)
    int main()
    {
    	//定义
        int score;
        int i = 0;
        while(i < 10){
        i++;
        //1.提示输入成绩
        printf("请输入第%d次成绩\n",i);
        //2.接收输入的成绩
        scanf("%d",&score);
        //3.选择嵌套
        //如果大于等于90
    	if(score >= 90){
         //输出优秀;
          printf("优秀!\n");
      }else if(score >= 70){
    						printf("良!\n");//否则
    				}
       else if(score >= 60){
    						printf("及格!\n");
    						}
       else if(score >= 40){
    						printf("不及格!\n");
    								}
       else{
    						printf("很差!\n");
    		}
         }
    	system("pause");
    	return 0;
    }
    
    

    由此可见:

    1. while语句中的表达式可以是任何合法的表达式。
    2. 循环体语句包含多条时可用大括号包含起来.

    for语句

    一般形式:
    for(表达式1;表达式2;表达式3;)
    	循环体语句;
    for(表达式1;表达式2;表达式3;)
    	{
    		循环体语句;
    		循环体语句;
    		......
    	}
    
    1. 表达式1,用来指定循环变量的初始值,指定循环的起点。
    2. 表达式2,条件表达式,用来判断循环的变量是否满足执行循环的条件。
    3. 表达式3,步长表达式,用来改变循环变量的值。
    4. 循环体语句,反复执行的操作。
    5. 表达式之间用分号分隔。
    #include <stdio.h>
    
    int main()
    {
      int sum = 0;
    
      int i;
    
      for (i = 1; i <= 50; i++)
      {
        sum += i;
      }
    
      printf("1和50之间(包括1和50)的整数之和为%d\n", sum);
    
      return 0;
    }
    
    1. 若循环体语句有多条语句组成,必须用大括号把他们括起来,变成一条复合语句。否则,只会循环执行紧跟其后的的一条语句。
    2. for语句中的三个语句的执行顺序,与书写顺序并不相同,表达式3,的执行顺序在执行循环体语句之后。

    do…while语句

    for语句和while语句都是在循环体执行前,先判断条件是否成立在决定是否执行循环体,若条件不成立则一次都不会执行。
    do-while语句略有不同,它先执行循环体在判断条件是否成立,也就是说无论循环条件是否成立它都会会至少执行一次循环体。

    一般形式:
    do {
    
    	循环体语句;
    	
    }while(表达式);
    

    例:

    #include <stdio.h>
    #include <stdlib.h>
    int main()
    {
    
    int i = 0;
    	/*while(1){
        printf("XXX很帅!\n");
        }*/
        do{
        i++;
    		printf("XXX很帅!\n");
            if(i == 10){
    			break;
            }
        }while(1);
    	system("pause");
    	return 0;
    }
    

    break和continue语句

    break语句

    强制循环结束,一旦执行了break语句则提前结束了循环,不在继续执行break语句之后的语句,常与if语句配合使用,条件满足时跳出循环。

    continueyu语句

    continue语句的作用是跳过本轮循环,即跳过循环体中的continue语句后面的语句,继续下一轮循环。

    break与continue的区别在于,break结束循环,而continue只是跳过跳过后面的语句继续循环。

    展开全文
  • 笔记||Python3之布尔表达式+条件判断

    千次阅读 2021-01-13 23:49:34
    布尔表达式:布尔类型:特性:只有两种情况 --- 真 / 假1 -- True False2 -- type(True) ------------ 布尔表达式:1 ---它的结果是bool2 ---关系运算 3>1 关系的等价 == 一个等号是赋值 等价 !=3 ---字符串的...

    布尔表达式:

    布尔类型:特性:只有两种情况 ---   真  /  假

    1 -- True    False

    2 -- type(True) ------------

    布尔表达式:1 ---它的结果是bool

    2 ---关系运算  3>1  关系的等价 ==      一个等号是赋值   不等价  !=

    3 ---字符串的比较:① -- 是比较长度吗?  ---- 不成立

    ② -- 比较的是字符串对应的ASCII值  A---65        a----97

    4 --- 逻辑运算

    布尔结果:1 ---in  在里面

    2 ---not in 不在里面

    3 ---str   tuple   list

    4 ---(1, 3) in (1, 3, 5) --------False

    条件组合:1 -- 且 --------- 条件1   and    条件2

    ①其中一个为False   ----- 整个表达式= False

    ②如果条件1 == True,条件2,一定会执行

    ③如果条件1 == False,条件2,一定不会执行

    2 -- 或 --------- 条件1  or  条件2

    ① - 其中一个为True   ----- 整个表达式=True

    ② - 如果条件1 == True, 条件2,一定不会执行

    ③ - 如果条件1 == False,条件2, 一定会执行

    3 -- 不 -- not

    ①取反   True ---- False

    4 -- 优先级

    ① - 没有任何括号的情况下 not > and > or

    ② - 建议多打括号  (3(2(1)))  ------- 从里到外

    ③ - 复杂的逻辑关系 -------- 建议注释

    =============================================================================================================

    条件判断:

    流程控制:①顺序结构 ---- 一步步执行

    ②选择结构 ---- 在某一步选择性执行

    ③循环结构 ---- 在一定条件下,一直执行某段代码

    条件判断:1 --  if  -- 如果               if条件==True:执行if里面的语句

    2 -- if ...else...    如果--否则

    ①只有2种情况,肯定会执行其中一个

    ②对立面的情况下使用

    3 -- 多种分支  if ....elif ...else...

    ①最后的else选配

    ②只要满足其中一个分支,就退出if的语句结构

    4 -- if的嵌套

    ①要执行内部的if  一定要外部的 if  满足才可以

    ②相当于 and

    5 -- switch语句   ------------ 没有这个语法

    6 -- 多条件可以分行写

    7 -- 注释/取消注释  ctrl + /

    8 -- 扩展:

    ① - if 如果后面跟是  非0的数值、非空字符串、 非空元组、 非空列表,该if的条件结果为True

    9 -- input()  -函数 -- 接收字符串 -- 返回的是字符串

    if语句只要满足其中一个就结束整个if代码块

    展开全文
  • 首先使用正则定义邮箱地址的通用表达式:^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$ 释义:a-zA-Z 表示为26个英文字母的大小写格式  0-9 表示0到9之间的数  _- 表示下划线及中线  $ 表示结尾终止 ...
  • 一、选择结构 二、循环结构 三、函数
  • 3.1.1 条件表达式

    2020-12-10 09:56:14
    在选择结果和训话结构中,都要根据条件表达式的值来确定下一步的执行流程。...从这个意义上来讲,所有的Python合法表达式都可以作为条件表达式,包括含有函数调用的表达式。例如:1 >>> if 3: ...
  • 正则表达式

    2014-12-03 14:51:39
    这样,引用就只是帮助你输入正则表达式的重复部分的快 捷方式了,它还实施了一条规约,那就是一个字符串各个分离的部分包含的是完全相同的字符.例如:下面的正则表达式匹配的就是位于单引号或双引号之内的所有字 ...
  • 后缀表达式中,是含有括号的,计算机在运算的时候,从左向右读取,若遇到运算符,则取运算符左边的两个操作数来计算,并将计算结果作为下一次计算的一个操作数。 下面分享一个用JAVA实现的中...
  • python笔试题22-41

    千次阅读 2021-04-27 00:48:17
    33、type(1+2L*3.14)的结果是 A、 B、 C、 D、 34、若k为整形,下述while循环执行次数为 k=1000 while k>1: print k k = k/2 A、9 B、10 C、11 D、100 35、以下谁是不合法的布尔表达式 A、x in range(6)B、3=aC、e>5...
  • 【C#】利用正则表达式验证IPV4地址的合法性1 题目描述2 源码详解3 实现效果 1 题目描述 利用正则表达式验证IPV4地址的合法性,并输出是第几类地址及是否为私有地址或保留地址。 IPV4的地址分类及网络号的范围如下:...
  • python中的各种表达式

    千次阅读 2020-11-29 19:33:37
    1 三元运算符格式:变量=条件返回True的结果 if 条件 else 条件返回False的结果条件:1 必须有结果2 必须要有if和else3 简单的条件判断# a=1# b=5# c=a if a>b else b# print(c)# ...test(3,50))2 列表表达式格式:[...
  • for循环语句for循环是Java程序设计中最有用的循环语句之一。...表达式3){ 语句序列}表达式1:该表达式用于初始化循环控制变量,它只在循环开始时执行一次。表达式2:循环条件表达式,它的类型为boolean...
  • C++ 使用正则表达式

    千次阅读 2021-01-11 22:07:33
    正则表达式正则表达式RE库组件正则表达式的使用参考资料 正则表达式 正则表达式(regular expression)是一种描述字符序列的方法,是一种极其强大的计算工具。 C++正则表达式库(RE库)定义在<regex>中,它包含多...
  • Python如何判断数独是否合法

    千次阅读 2020-11-30 12:00:01
    Python如何判断数独...注意事项一个合法的数独(仅部分填充)并一定是可解的。我们仅需使填充的空格有效即可。解体思路将数独按照行、列和块进行预处理,然后分别判断是否合法。利用Python的表达式推导,匿名函...
  • =、==、+=、*=、-=、/=、%= 函数:fabs() C语言有3种循环:for、while、do while 使用关系运算符构建控制循环表达式 其他运算符 循环常用的数组 编写有返回值的函数 Tips2: 循环的使用方法 大多数人都希望自己是...
  • 运算符与表达式3. 程序的控制结构 在本章的开头送给大家一句话:生活不会突变,你要做的只是耐心和积累。人这一辈子没法做太多的事情,所以每一件事情都要做得精彩绝伦。— 史蒂夫·乔布斯(苹果公司联合创始人) 1. ...
  • [快速理解] 1.布尔表达式是:判断变量逻辑关系的运算,结果为True或False。...以下哪项是不合法的Python布尔表达式? A.1==2 B.1<=2 C.(1==2)and(1!=2) D.a=1 欢迎大家转发,一起传播知识和正
  • python测试题

    千次阅读 2020-12-20 04:21:18
    一、填空题1.Python使用符号...3、Python中的可变数据类型有,可变数据类型有。4、Python的数字类型分为、、等子类型。5、设s=‘abcdefg’,则s[3]值是 ,s[3:5]值是 ,s[:5]值是 ,s[3:]值是 ,s[ : :2]值是 ...
  • 史上最全正则表达式语法,文末附常用表达式

    万次阅读 多人点赞 2019-10-28 09:03:25
    元字符是构造正则表达式的一种基本元素。 . :匹配除换行符以外的任意字符 w:匹配字母或数字或下划线或汉字 s:匹配任意的空白符 d:匹配数字 b:匹配单词的开始或结束 ^:匹配字符串的开始 $:匹配字符串的...
  • python运算表达式

    2021-03-06 22:49:19
    运算符1、算术运算符:+,-,*,/,//(求整商),%,**(求多次方,左边为数,右边为多少次方)2、关系运算符:>,=,!=3、测试运算:in,not in,...(同)6、矩阵运算符:@(矩阵乘法)选择结构单分支 if 表达式:语句...
  • 循环遍历正则验证input框内容合法

    千次阅读 2017-05-05 09:44:10
    最近在写一个前端工具类,用来验证输入框的正确性,就不用jQuery验证那个东西了, 尝试了一下,代码如下: ... 循环遍历正则验证input框内容合法性 城市1: 城市2: 城市3: 城市4: 城市5:
  • 【单选题】空气中一内外半径分别为 与b的接地导体球壳,距球心 处( )有一点电荷Q,则导体球壳上所感应的电荷总量是( )【单选题】与数学表达式de/3abc对应的Python表达式中,正确的是( )。【单选题】一个接地的导体...
  • 第6章循环控制一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。)6.1对表达式for(表达式1;;表达式3)可理解为A)for(表达式1;0;表达式3)B)for(表达式1;1...
  • Nginx Rewrite && 正则表达式

    千次阅读 2021-10-12 10:06:42
    正则表达式的目的是为了尽量精确的去匹配 文件,尽量精确的匹配,区分的话更容易找到 目录,尽量精确匹配,区分大小写优先级更高,更容易找到 ③ 在实际网站使用中,至少要有三个匹配规则定义 ------------------...
  • C语言的表达式02. C语言的语句03. C语言中的代码块04. C语言中的语句表达式05. 宏中使用语句表达式06. Linux内核应用示例07. 附录 01. C语言的表达式 表达式和语句是 C 语言中的基础概念。什么是表达式呢?表达式...
  • 正则表达式在网络爬虫、数据分析中有着广泛使用,掌握正则表达式能够达到事半功倍的效果。本文详细介绍正则表达式中各种规则及其符号含义,并结合Python中的Re库进行演示,由浅入深,即学即练即用,内容丰富,非常...
  • C语言for语句用法详解

    千次阅读 2021-05-18 12:34:53
    C语言for语句用法详解C语言是一门高级计算机编程语言,设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及需要任何运行环境支持便能运行的编程语言。下面小编给大家介绍C语言for语句...
  • 在switch多分支语句中,break语句有...如果没有break语句,则会从满足条件的地方(即与switch(表达式)括号中表达式匹配的case)开始执行,直到switch结构结束。当break语句用于do-while、for、while循环语句中时,可...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 64,013
精华内容 25,605
关键字:

循环控制表达式不合法

友情链接: gensplit(窗口分割).rar