精华内容
下载资源
问答
  • 累加求和 for while的应用

    千次阅读 2017-01-17 16:48:49
    累加求和 for while的应用

    累加求和 for while的应用

    package arithmetic;
    
    import java.util.Scanner;
    
    /**
     * 求1+2+3+...+100的值、主要用循环来操作  for  while  do...while 
     *      
     *      a)扩展:求[ 1 , 200 ]的奇数和  或 [1 , 200 ]的偶数和
     *      b)扩展:求1-2+3-4+5-6.....+99-100的值为多少
     *      c)扩展:求[x , y]之间的数和; x  y由用户输入
     *
     * @author sunRainAmazing
     *
     */
    public class GetSum {
        public static void main(String[] args) {
            getSumByFor();
            getSumByStrongFor();
            getSumByWhile();
    
            getSumByFor2();
            getSignSum();
    
            @SuppressWarnings("resource")
            Scanner scanner = new Scanner(System.in);
    
            System.out.println("请输入第一个数字:");
            int firstValue=scanner.nextInt();
            System.out.println("请输入第二个数:");
            int lastValue=scanner.nextInt();
            getInputSum(firstValue, lastValue);
    
        }
    
        /**
         * 求1+2+3+...+100采用for的形式
         */
        public static void getSumByFor(){
            int sum=0;
            for (int i = 1; i < 101; i++) {
                sum+=i;
            }
            System.out.println("1+2+3+...+100的和getSumByFor():"+sum);
        }
    
    
    
        /**
         * 求1+2+3+...+100采用增强双向for的形式
         */
        public static void getSumByStrongFor(){
            int sum=0;
            for (int i = 1, j=100; i < j; i++,j--) {
                sum+=(i+j);
            }
            System.out.println("1+2+3+...+100的和getSumByStrongFor():"+sum);
        }
    
    
    
        /**
         * 求1+2+3+...+100采用while的形式
         */
        public static void getSumByWhile(){
            int sum=0;
            int i = 1; 
            while (i < 101) {
                sum+=i;
                i++;
            }
            System.out.println("1+2+3+...+100的和getSumByWhile():"+sum);
        }
    
    
        /**
         * 相加整数200以内的所有偶数和
         */
        public static void getSumByFor2(){
            int sum=0;
            for (int i = 2; i < 201; i+=2) {
                sum+= i;
            }
            System.out.println("2+4+...+200的和getSumByFor2():"+sum);
        }
    
    
    
        /**
         * 求1-2+3-4+5-6.....+99-100的值为多少
         */
        public static void getSignSum(){
            int sum=0;
            for (int i = 1; i < 101; i++) {
                int temp=i;
                if(temp%2==0){
                    temp=-i;
                }
                sum+=temp;
            }
            System.out.println("1-2+3-4+5-6.....+99-100的值为:"+sum);
        }
    
    
    
    
        /**
         *  有用户输入值进行连加操作
         * @param firstValue 值1
         * @param lastValue  值2
         */
        public static void getInputSum(int firstValue,int lastValue){
            //交换大小顺序
            if(firstValue>lastValue){
                int temp=firstValue;
                firstValue=lastValue;
                lastValue=temp;
            }
    
            int sum=0;
            //计算结果
            for (int i = firstValue; i <= lastValue; i++) {
                sum+=i;
            }
            System.out.println(firstValue+"到"+lastValue+"的连续相加值为:"+sum);
        }
    
    }
    
    展开全文
  • for的简单使用 fordodone下图为测试局域网内所有打开的主机 使用for来编写备份数据库的脚本whlie的简单使用whliedodone下图为监控册判空间的脚本简单的while计数器while 编写猜数字的脚本这里判定时通过while后的...

    通过read编写检查ip是否可以ping通


    首先学习编写一个简单的函数脚本 




    for的简单使用

    for

    do

    done


    下图为测试局域网内所有打开的主机

     


    使用for来编写备份数据库的脚本



    whlie的简单使用

    whlie

    do

    done

    下图为监控册判空间的脚本



    简单的while计数器



    while  编写猜数字的脚本


    这里判定时通过while后的语句实现  并且加入简单简单的if  then 


    用while  if编写循环加法运算

    注意sum+=i

    sum=sun+i



    展开全文
  • Linux Bash Shell编程(十):流程控制语句(下) 循环语句(for while until) 上一节中,我们学习了流程控制语句中的分支语句。本节,我们一起来了解一下流程控制中的最后一个部分——循环语句,学会运用三个常见...

    上一节中,我们学习了流程控制语句中的分支语句。本节,我们一起来了解一下流程控制中的最后一个部分——循环语句,学会运用三个常见的循环语句(for while until)。

    Shell 10

    循环语句简介

      循环语句,是指在符合一定条件的情况下,可以重复执行一段语句。主要为了满足某些情况下执行一些重复但有一定微小差异的动作,如批量修改文件、定时执行命令、反自复制木马等。有了循环语句,计算机程序也就真正体现了其运算优势,大大提高了程序的编码效率。


    for 循环

     简介

      for循环为定循环,for循环在为语句提供循环的同时使变量发生集合枚举和迭代。变量在一个范围或集合中每得到一个枚举或迭代的新值,就将循环体内的语句循环一次

     语法

    #第一种形式:枚举
    for Var in Key1 Key2 Key3... 
    #其中,Var为变量 Key1 Key2等为变量枚举中选中的集合值
    	do
    		<Action>
    	done
    
    #第二种形式:迭代
    for Var in {n1..n2[..step]}
    #n1 为起始数字;n2 为结束数字; step可选,为步长,即每步增加的数字
    	do
    		<Action>
    	done
    

     示例

    #以下示例求1到100中所有奇数的和
    sum=0
    for i in {1..100..2}
    do
            sum=$[$sum + $i]
    done
    echo $sum
    

     注意事项

    • 对于迭代形式,数据起始数据不仅仅是数字,也可以是字母等,如{a..z}会将所有小写字母迭代一遍
    • 枚举不需要括号,仅需要在每个值之间空格即可
    • 在循环体中可以更改循环变量的值,但不会对循环过程产生影响。枚举与迭代相同,在进入下一个循环后,无论当前变量值如何,都会迭代进入下一个值

     C语言风格的for循环

    bash 的for循环还支持C语言风格,语法如下,其他用法相同。具体还请参阅C语言的for循环

    for ((i=1;i<=10;i++))
    do
            echo $i
    done
    
    • 注意,bash中C语言风格的for循环含有两个括号
    • 运行过程中可以更改循环变量的值,仅限于C语言风格循环

    while 循环

     简介

      while循环与for循环不同,while循环是不定循环,也称为条件循环。其没有循环变量限制次数,在满足循环条件的情况下循环会一直进行,直到不满足循环条件。

     语法

    while [Condition]
    do
    	<action>
    done
    

     示例

    #以下示例同样求1-100中所有奇数的和
    #!/bin/bash
    
    #Author:Zheng
    
    i=1
    sum=0
    while [ $i -lt 100 ]
    do
            sum=$[$sum + $i]
            i=$[$i + 2]
    done
    echo $sum
    

     注意事项

    • 条件判断式注意括号内侧的空格

    • 如果想要实现死循环,可以在条件表达式内加一个恒成立的变量,只需要在循环体中设定条件使循环跳出即可(具体见下)

    • 循环必须设定有效的跳出条件(在循环条件或循环体中),否则可能导致资源占用、系统崩溃

      以下示例使用死循环并用break语句进行跳出:

    i=0
    while [ 1 -eq 1 ]
    do
            i=$[$i + 1]
            echo $i
            if [ $i -ge 10 ]; then
                    break
            fi
    done
    

    until 循环

     简介

      until循环与while循环都是不定循环,但其条件判断方式和while相反。顾名思义,until循环语句只要条件判断式不成立就一直循环,直到条件判断式成立就跳出循环。部分内容与while循环相同,就不再赘述

     语法

      Bash中的until循环语法与部分编程语言不同,until条件判断句在循环体之前,如果一开始就符合条件,直接跳过循环,而不是先执行一遍循环体后判断跳出。

    until [Condition]
    do
    	<Action>
    done
    

     示例

    #本示例同样完成1-100中所有偶数的和
    #!/bin/bash
    
    #Author:Zheng
    
    i=1
    s=0
    until [ $i -gt 100 ]
    do
            s=$[$s + $i]
            i=$[$i + 2]
    done
    echo $s
    

     注意事项

    • 注意条件判断式中括号内侧的空格

    循环的跳过和跳出

      循环的跳过和跳出虽然只差一个字,但概念完全不同

     语法

    主要使用continue语句和break语句

    for i in {1..100}
    do
    	<action>
    	continue #仅跳过当前循环进入下一循环
    	continue n #n为数字,跳过n层循环
    done
    

     示例

    #此示例在i为偶数时跳出,偶数循环号下不会显示"Finish"
    for i in {1..20}
    do
            echo $i
            if [ $[$i % 2] == 0 ]; then
                    continue 
                    #当前仅有1层循环,continue 2 表示直接跳过当前的第二层循环,进入第二层的下一迭代
            fi
            echo "Finish" 
    done
    echo "Final"
    
    #此示例在i为10时退出,不输出Finish而直接Final
    for i in {1..20}
    do
            echo $i
            if [ $i == 10 ]; then
                    break
                    #当前仅有1层循环,break 2 表示直接跳出当前两层循环
            fi
            echo "Finish"
    done
    echo "Final"
    

     注意事项

    • 循环的跳过一般结合条件判断语句使用,增加循环的灵活性
    • continuebreak命令中,后面加的数字都代表循环层数而不是循环次数,某些参考中可能有误,请注意

    总结

      三种循环格式可以相互通用,在不同的环境下某个循环会更适合,请大家结合实际场景自行选择需要使用的循环语句。

      本节我们正式结束了Shell编程的学习,更加深入的函数等内容,由于Bash不是面向对象的编程语言,日常感觉应用不是很广,暂不涉及,有需要我会过一段时间更新。

    上一节,Linux Bash Shell编程(九):流程控制语句(上) 分支语句(if、case)

    展开全文
  • 关于for while的效率问题

    千次阅读 2015-07-19 14:15:34
    首先比较forwhile的效率问题必须保证循环次数一致 下面简单的分析forwhile的效率问题就从最简单的无限循环开始,其余相同: for(;;){ }while(1){ } 这两句都实现了无限循环的功能,使用gcc编译成汇编代码为...

    首先比较for与while的效率问题必须保证循环次数一致

    下面简单的分析for与while的效率问题就从最简单的无限循环开始,其余相同:

    for(;;){
    }
    while(1){
    }

    这两句都实现了无限循环的功能,使用gcc编译成汇编代码为:

    for:

    	.file	"for.c"
    	.text
    	.globl	main
    	.type	main, @function
    main:
    .LFB0:
    	.cfi_startproc
    	pushq	%rbp
    	.cfi_def_cfa_offset 16
    	.cfi_offset 6, -16
    	movq	%rsp, %rbp
    	.cfi_def_cfa_register 6
    .L2:
    	jmp	.L2
    	.cfi_endproc
    .LFE0:
    	.size	main, .-main
    	.ident	"GCC: (Ubuntu 4.9.2-10ubuntu13) 4.9.2"
    	.section	.note.GNU-stack,"",@progbits
    


    while:

    	.file	"while.c"
    	.text
    	.globl	main
    	.type	main, @function
    main:
    .LFB0:
    	.cfi_startproc
    	pushq	%rbp
    	.cfi_def_cfa_offset 16
    	.cfi_offset 6, -16
    	movq	%rsp, %rbp
    	.cfi_def_cfa_register 6
    .L2:
    	jmp	.L2
    	.cfi_endproc
    .LFE0:
    	.size	main, .-main
    	.ident	"GCC: (Ubuntu 4.9.2-10ubuntu13) 4.9.2"
    	.section	.note.GNU-stack,"",@progbits
    
    可见除了文件名不同外,其余全部相同,并且都是执行一次跳转jmp。两种循环效率一样高。

    参考:

    一般来说,do..while循环要比for,while循环效率要高,从汇编代码中可以看出,在深入理解计算机3.6.5节中可以看出,进行汇编时,会先将for,while转换为do...while

    总结:

    for循环习惯写法for(int i=0;i<num;i++)执行效率低于for(;(num-->0);)而for(;(num-->0);)写法效率与while((num-->0))相同。



    展开全文
  • 在Java中我们很多时间需要重复执行一个同样的操作,如果...for循环: for(初始A;条件判断B;循环后操作C){ ​ //循环体D } for循环执行流程: 第一次: A>B(true)>D>C 第二次: B(true)>D>C 第三次: ...
  • linux shell 循环写在一行 for while

    千次阅读 2020-09-29 15:19:42
    for循环实例 间隔5秒查询tomcat进程是否存在,如果存在跳出循环,最多总共循环20次,等待100秒 for i in $(seq 1 20); do ps aux| grep tomcat | grep -v grep && break;sleep 5;done while循环实例 ...
  • for while循环 列表长度变化

    千次阅读 2017-10-01 10:41:31
    当对列表进行删除归时,因为过程中列表长度变化,因此用for循环就不方便,for循环1,2,3,4,5,删除一个,其他后面的都会变化。 while循环此时可以非常完美的解决问题。 a = [['1',2],['he',1],['are',1],['man',1]] ...
  • 循环语句For While do-while的小练习

    千次阅读 2013-03-21 16:22:15
    题目2:使用 forwhile 、do-while 语句编写程序,打印 1 到 100 的和 */ class For{ public static void main(String[] args){ //定义整型变量sum,用来存和并初始化为0 int sum = 0;
  • 看了一个for循环的题让写输出,看了一下顿时感觉不能随便写,然后懵逼了。。。看看看看结果 果然写错了,虽然一直在用各种循环,有时候对他们的机制并不是很了解,基础不扎实,上场就容易忘。。。 现在总结下这三种...
  • while - while a=[[1,2,3],[4,5],[6,7,8,9],[‘a’,‘b’,‘c’]] i=0 while i&amp;amp;lt;len(a): j=0 while j&...while - for a=[[1,2,3],[4,5],[6,7,8,9],[‘a’,‘b’,‘c’]...
  • Python基础06 循环for while 中断循环

    千次阅读 2017-08-22 15:36:07
    for循环 for循环需要预先设定好循环的次数(n),然后执行隶属于for的语句n次。 基本构造是 for 元素 in 序列: statement   举例来说,我们编辑一个叫forDemo.py的文件 for a in [3,4.4,'life']: print (a)...
  • js判断语句 for while循环

    千次阅读 2016-11-20 17:18:30
    // while循环强调,不记循环次数(不知道循环多少次),首选while。 // for循环 // 1) 执行流程 // for (变量;条件1;条件2){ 执行程序 } // 执行过程:变量->条件1->执行程序->条件2->条件1->执行程序..... // 直到...
  • for while 与 until的 差别

    千次阅读 2011-12-13 11:16:49
    * while * until for loop 是从一个清单列表中读进变量值,并“依次“的循环执行 do 到 done 之间的命令行。 例 for var in one two three four five do echo ----------- echo '$var is ' $var
  • 【Python】 for while 跳出多层循环

    千次阅读 2018-02-07 10:41:32
    Python 本身没有“break n” 和“goto” 的语法,这也造成了Python 难以跳出多层(特定层数)循环。下面是几个跳出多层(特定层数)循环的tip。 1、自定义异常 try。。。... for j in range(5):
  • 1. 不用判断(if else等)和跳转语句(for while 等)打印出1-1000这1000个整数 2. 不用判断(if else等)和跳转语句(for while 等)计算1+2+...+1000 因为是针对整数的操作,巧用 && 运算符可以满足要求 #in
  • for================for i in {1..50}domkdir /usr/local/src/dir$idone循环创建50个文件 文件名格式dir1 dir2 .. {1..50} 表示1到50 类似数组也可以使用:for i in `seq 50`domkdir /usr/local/src/dir$i doneseq ...
  • for循环 例子:student = ['Jack','Bob','Marry','Micle'] for stu in student: #把student的元素遍历一遍 print(stu) 求和例子: sum = 0 #计算0到10的和 ...for i in range(11): ...while 循...
  • while((rx_byte!=0)))//检测过程  begin  //************  end如上图:报错内容提示没有确定的循环次数,不能生成硬件结果,所以这种while的没有固定循环次数的使用方法对于Verilog是不允许的,不同于C语言。...
  • 可以看到,for内嵌循环退出后再次进入,j=1; #include int main () { int i=1,j=1,n; scanf("%d",&n); while(i) { while(j) { printf("%d*%d=%-4d",j,i,j*i); j++; } printf("\n")...
  • 方法一 #!bin/bash removefile=$(cat result_temp.txt) for file in $removefile do    echo "remove" done 方法二 while read line do  echo $line done result_temp.txt
  • bash shell 中常用的 loop 有如下三种:  ...* while * until for loop 是从一个清单列表中读进变量值,并"依次"的循环执行 do 到 done 之间的命令行。 例: for var in one two three fou
  • C/C++ for while性能简单分析

    千次阅读 2009-06-09 18:12:00
    今天看一个文章想成为嵌入式程序员应知道的0x10个基本问题>...我首选的方案是:while(1){} 一些程序员更喜欢如下方案:for(;;){} 这个实现方式让我为难,因为这个语法没有确切表达到底怎么回事。如果一个应试者给出这
  • 无论我们是学习c c++还是java ,这三种循环:for循环,while循环,do…while循环都是我们必须要掌握的,接下来就分析下他们的区别以及什么情况下用哪种循环。 for循环的格式: for(初始化语句;判断条件语句;控制条件...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 330,845
精华内容 132,338
关键字:

forwhile