精华内容
下载资源
问答
  • while死循环语句怎么写
    千次阅读
    2019-09-10 22:09:32

    1、do…while循环语句
    格式:
    do{
    循环执行体
    }while(循环条件);

    注意该循环和while循环的区别:
    当首次的循环条件结果是false,那么while循环的执行体是不执行的,
    但是do…while循环的执行体无条件执行一次;
    这个是do…while循环的一大特点,也是该循环的一大缺点;

    代码:
    public class DoWhileDemo{
    public static void main(String[] args){
    	int i = 0;
    	do{
    		System.out.println(i);
    		i++;
    	}while(i<100);
    }
    

    }

    2、无限循环/死循环
    形式:
    1:
    while(ture){

    }
    2:
    for(; ture/; ; ){

    }

    3、循环的嵌套:循环里面还有一个循环,最常用的是for循环嵌套;
    格式:
    for(; ; ?{
    for(; ; ?{
    循环执行体;
    }
    }
    循环嵌套的复杂主要是整个循环的步骤,内循环是外循环的循环执行体,
    外循环执行一次后,内循环执行结束,再进行外循环增量后,判断外循环条件结果,结果是ture,
    则继续进行整个内循环,反复进行,直到外循环结果是false,整个循环结束

    案例:做一个直角三角形
    public class ForForDemo{
    public static void main(String[] args){
    for(int i =0;i<10;i++){
    for(int j =0;j<i+1;j++){
    System.out.print("*");
    }
    System.out.println(" ");
    }
    }
    }
    }在这里插入图片描述

    4、Break:循环中遇到break,循环结束,作用于循环语句中,起到终止循环的作用;
    continue:循环中遇到continue,本次循环结束,执行下一次循环。

    更多相关内容
  • Python3的循环语句包括for和while循环语句的流程图如下: 1、while循环 while循环语句和if条件语句一样,需要注意冒号(:)和缩进,Python3中没有do…while语句 a、形式 while 判断条件(condition): 执行语句...
  • Python中有两种循环,分别为:for循环while循环。 for循环可以遍历任何序列的项目,如一个列表或者一个字符串。while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。
  • for循环语句 具有循环范围的语句 ①按照指定序列信息进行循环 ②根据文件行数信息进行循环 ③根据字符串的数量进行循环 ④根据命令输出信息进行循环 语法格式: for 变量名 in 循环取值列表 do 执行循环命令主体 ...

    for循环语句
    具有循环范围的语句
    ①按照指定序列信息进行循环
    ②根据文件行数信息进行循环
    ③根据字符串的数量进行循环
    ④根据命令输出信息进行循环

    语法格式:

    for 变量名  in  循环取值列表
    do
        执行循环命令主体
    done
    

    命令行使用方式(其实就是比脚本方式多了;每个需要换行的地方就写;)
    在这里插入图片描述
    for循环的嵌入循环方式

    ①爷爷–爸爸–儿子
    ②爸爸—大儿子/小儿子

    实现1到100求和运算,如何使用for循环实现

    脚本内容

    #!/bin/bash
    for i in {1..100}
    do
      x=$[x+i]
    done
    echo $x
    

    这个脚本把我绕蒙了。。。
    思路:
    ①for循环取值
    ②此时取的值与后一次取的值进行相加
    ③循环体外最后一次输出总和

    我卡死在了思路二
    现在也不很明白 怎么做一个“存储器”将每次i取的值与后一次i取的值进行相加存储,最后输出。

    x=x+i
    ① ②
    这个式子,默认x不给予赋值时,x默认为0.这是默认的一个规则。
    黄 x 总和x的数值
    第一次取值:i=1 x=0 总和x=1
    第二次取值:i=2 x=1 总和x=1+2
    第三次取值:i=3 x=3 总和x=(1+2)+3

    我是这样找到的方法,但是我多举了几个例子才得出的,不是想出来的,老感觉有点绕。

    x=$[x+i] 这是两个变量数值相加,赋值给x变量。

    利用for循环实现打印99乘法表

    #!/bin/bash
    for i in {1..9} #取出第一个数字
    do
      for n in {1..9}  #取出一轮1-9的数字;问题:1*(1-9)这是一轮 第二轮2*(1-9)重复了
    一个2*1
       do
         if [ $i -ge $n ]
         then
         echo -n  "$i*$n=$[$i*$n] "
         fi
       done
     echo ""
    done
    
    [root@lsy script 09:11:46]# sh lsy.sh
    1*1=1 
    2*1=2 2*2=4 
    3*1=3 3*2=6 3*3=9 
    4*1=4 4*2=8 4*3=12 4*4=16 
    5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 
    6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 
    7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 
    8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 
    9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 
    

    我一开始写出的结果是

    [root@lsy script 09:07:37]# sh lsy.sh
    1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8=8 1*9=9 
    2*2=4 2*3=6 2*4=8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18 
    3*3=9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=27 
    4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=36 
    5*5=25 5*6=30 5*7=35 5*8=40 5*9=45 
    6*6=36 6*7=42 6*8=48 6*9=54 
    7*7=49 7*8=56 7*9=63 
    8*8=64 8*9=72 
    9*9=81 
    

    将$n 和 $i的位置调换一下就可以修改过来了。
    解释脚本:
    大循环取一个数值,就可以让小循环取一遍数值
    也就是爸爸辈的取出一个1 儿子辈的取出1到9。
    问题在于怎么解决 重复的问题
    1x2 2x1是重复的。

    #!/bin/bash
    for i in {1..9} #取出第一个数字
    do
      for n in {1..9}  #取出一轮1-9的数字;问题:1*(1-9)这是一轮 第二轮2*(1-9)重复了一个2*1
       do
         if [ $i -ge $n ] #解决重复的问题,只有第一个for循环取的数值大于第二个for循环取的数值时才可以进行运算,否则不进行操作
         then
         echo -n  "$i*$n=$[$i*$n] "  #-n参数是为了不让输出内容进行换行 冒号后面有两个空格时为了间隔 后面的输出(横向输出)。
         fi
       done
     echo "" # (执行完一次第一个for循环取出的数值,进行换行,每执行完第一个for循环取出的一个数值,都进行一次换行)
    done
    

    这个脚本的for循环使用嵌套类型是属于爸爸—儿子的类型;
    还不是爷爷—爸爸–儿子的三层嵌套

    别人的解法:

      #!/bin/bash
      for num1 in `seq 9`   
      do
         for num2 in `seq 9` 
         do
            if [ $num1 -ge $num2 ]
            then
               if ((($num1*$num2) > 9))
               then
                  echo -n "${num1}x${num2}=$((num1*num2)) "
               else
                  echo -n "${num1}x${num2}=$((num1*num2))  "
               fi
            fi
         done
      echo " "
      done
    

    打印等腰三角形
    思路:
    ① 行数信息 等于传入的参数 最外层循环范围
    ②列数信息

      #!/bin/bash
          read -p "please input num: " i
          for a in `seq $i`
          do
             b=$[$i-$a] # 输入空格列信息
             for b in `seq $b`
             do
                echo -n " "
             done
             for c in `seq $a`
             do
               echo -n "* "
             done
             echo
          done
    

    注意:
    $[ $i- $n] 的方式可以直接运算变量

    具体办法

    补充:嵌入式循环
    情况一:爷爷–爸爸–儿子 三层嵌套循环

    #!/bin/bash
    for a in {1…3}
    do
    echo $a
    for b in {a…c}
    do
    echo a a ab
    for c in {A…C}
    do
    echo a a ab$c
    done
    done
    done
    情况二:爸爸—儿子①/儿子②

     #!/bin/bash
          for a in {1..3}
          do
             echo $a
             for b in {a..c}
             do
                echo $a$b
             done
             for c in {A..C}
             do
                echo $a$b$c
             done  
          done
    

    while循环语句
    具有循环条件
    ① 只要条件为真,就会一直循环下去

    语法格式
    方法一:

    while true
    	  do
    	     echo oldboy 
    	  done	
    

    方法二:不是死循环效果

       while ((条件语句))  [条件语句]
          do 
             动作
    	  done
    	  
    	  i=0
    

    方法三:不是死循环效果

      while read 变量名 
    	  do 
    	     echo $变量名
    	  done < user.txt
    

    命令行的使用方式

    while read line ;do echo $line ;done<user.txt
    

    循环控制语句
    exit 退出整个脚本 不再继续执行
    break 跳出本次循环 继续执行下面操作(跳出循环,进入下一个语句)
    continue 本次循环结束,继续下一次循环(不跳出循环,只是将循环给提前结束了。仍在本次语句中捯饬)

    展开全文
  • while循环语句

    2021-12-02 13:22:27
    首先给大家讲解一下什么叫循环,否则后面会非常的蒙蔽,我们假设一下,今天是新生入学,我们是引导的老师,我们会问一位同学,你是哪个班的,然后他...while循环语句是一个常用且简单的条件表达循环语句,表达式如下

    首先给大家讲解一下什么叫循环,否则后面会非常的蒙蔽,我们假设一下,今天是新生入学,我们是引导的老师,我们会问一位同学,你是哪个班的,然后他回答一班,那么我们就要指引他们去一班的方向,然后我们会问下一位同学,你是哪个班的,然后他回答二班,那么我们就要指引他去二班,然后在问下一位,他回答一班,那么我们就要指引他去往一班,这个反复询问的过程,就叫我们的循环,我们在反复做的一件事就是我们的循环过程。现在大家有点初步的领悟了吗。

    while循环语句

    while循环语句是一个常用且简单的条件表达循环语句,表达式如下:

    while 执行循环的条件:
        执行循环的内容

    我们先来一个简单的举例:

     当我们满足条件时,就会执行我们的循环内容,内容执行完以后会从新进行我们的条件判断,如果条件成立,会再次进入我们的循环内容,执行我们的循环内容,在上面的例子中,我们首先给定了一个a,并且我们的a=1,在下面的循环条件中,满足a<4,所以会进入我们的循环,打印出我们的“CSDN成就一亿程序员”,然后执行下一步a=a+1,在上一篇文章中介绍了我们的运算符,a=a+1的意思在这里就是自动增加1的意思,简单分析计算就是,等号右边的a为我们的赋值a,为1,然后加上1,给我们左边的a,这个时候我们的a=2,结束第一次循环,将a等于2带入while的条件判断,2<4,执行循环内容,打印“CSDN成就一亿程序员”,然后左边的a这个时候等于2,加上1给我们左边的a,那么我们左边的a=3,然后结束第二次循环,进入while的条件判断,3<4满足条件进入循环,直到我们的a>=4整个循环结束。

    结果如下:

    这个例子需要新手们好好去理解循环的过程,跟赋值的自增,自增的理解能帮助我们后续解决很多的循环,我们后续很多简易的程序都会在循环的基础上展开,需要新手们多多的理解跟掌握。

    在我们的循环执行过程中,我们的循环执行语句还可以用我们的if条件语句,两者相结合可以很好的解决很多条件再条件的筛选的问题,例如我们刚刚解释循环时的举例,我们分析一个学生是否属于我们学校的,如果不属于那后面的问题就没有必要询问了,如果是,那就进入我们的循环询问

    下面我们就用while循环语句跟if条件语句解决一下我们的这个问题,进入我们的循环,条件是属于我们学校的学生,那么我们就可以很轻松的定义我们的条件,这里我们以学号在什么范围之内的为我们学校的学生来定义:

     

    这样我们的一个简易的程序就完成了,让我们来执行一下:

    这个时候,执行了的小伙伴就会发现,这个程序是错误的,一旦输入了一个数,我们就进入了死循环,一直都只报一个结果,而且重复报一个结果,这是为什么呢?

    在我们讲的第一个例子中,我们的a在每一次执行都会自动增加,达到不满足进入循环的条件,这样我们的循环才会终止,而在我们这次例子中,我们没有终止循环的条件,我们输入一个学号以后便会进行判断,满足循环条件后进行循环,结束一次循环之后,再次判断,但是我们的学号并不会改变,也就是永远满足进入我们循环的条件,所以这是一个错误的死循环的程序,那么我们如何更改我们的程序让他不进入死循环呢?

    break结束语句

    在我们的循环过程中,我们可以使用break结束我们的整个循环过程,break使用的表达式:

    while 循环条件:
        执行循环的内容
        break (执行循环内容后退出循环)
    
    
    或者
    
    
    
    while 循环条件:
        if 条件:
            执行的内容
            break (执行内容后退出循环)
        elif 条件:
            执行的内容
            break
        else:
            执行的内容
            break

    在我们使用第一种时,我们的循环只会进行一次,循环的意义就不存在了,所以我们通常使用第二种,现在我们将刚才的程序修改一下:

     我们执行一下:

    这样我们就不会进入我们的死循环,程序便会自动跳出循环

    这个时候会有同学来问,那我岂不是来一个同学就要执行一次程序??这样不是很麻烦嘛,怎么做到一次循环,就可以分辨来的所有学生的所有班级位置呢?

    在一次循环中,我们可以改变我们的学生的学号,怎样做呢??我们回想一下我们前面所讲的,我们是如何让我们的循环跳出的? 让我们的a自增,达到无法满足循环的条件,我们这里并不能自增,但是思路的差不多的,在循环的最后重新给我们的学号赋值即可:

    我们在最后一步加上我们的input输入,重新给定我们的a然后跳出第一次循环,便可以用我们的新的学号进行条件的判断,让我们来运行一下:

     

     我们发现,这个的一直循环更改学号的程序好了,但是有一个不足的地方就是,当这个学生不属于我们学校的时候,就会跳出我们的循环,这是因为在我们进入循环时的条件就是这个学生必须属于是我们学校的,学号要小于100是才能进入循环,那么我们怎么做到修改能做个就算该学生不是我们学校的也可以继续我们的循环呢?

    如果我们先进入循环,在进行学生班级的判断呢??也就是说无论该生是不是我们学校的学生,我们都可以进入循环,这样就不会出现上方的不足了,让我们一起来思考一下:

     这这里,我们的思路就构建完成了,但是我们的新的问题出现了,我们如何进入这个循环??怎样能做到一直在这个循环中呢??在这里给大家补充一个小仿佛,我们的布尔运算符,即我们的正确值True,当正确时进入循环:

    因为我们没有有True赋予其他的属性,所以我们在整个循环过程中,都是正确的,都能进入我们的循环,这样我们的问题就解决了,让我们来执行一下:

    这样,我们就能一直执行下去,然后我们给他补充一个退出的语句即可:

     当我们键盘输入999时,我们便可以直接结束我们的循环:

     我们while循环的大致内容跟技巧就总结到这里,循环是一个很重要的语句,在一个大的程序编写中,会多次运用到循环,需要我们多打开脑洞,思路,这样我们的循环能实现很多作用。

    展开全文
  • while循环为什么会有循环这种语句?举一个简单的例子:我们想计算0-100以内偶数的和,这种时候就需要循环这种语句那有人可能会说:这有什么 0+2+4+.......+98 一样可以计算出来啊突然我们的条件变了:计算0-10000000...

    while循环

    为什么会有循环这种语句?

    举一个简单的例子:我们想计算0-100以内偶数的和,这种时候就需要循环这种语句

    那有人可能会说:这有什么 0+2+4+.......+98 一样可以计算出来啊

    突然我们的条件变了:计算0-10000000内偶数的和

    可想而知这是怎样的一个工作量,循环正好可以解决这种问题。

    流程图:

    Gif 演示 Python while 语句执行过程

    python中while循环的表现形式就如同上图。

    语法形式:

    while循环条件:

    循环体(代码块)

    循环体(代码块)

    循环体(代码块)

    .

    .

    .

    eg:

    #计算100以内偶数的和

    count =0

    sum= 0 #总和

    while count < 100:if count%2==0: #判断是否为偶数

    sum+=count #是偶数就相加

    count+=1 #计数加一

    死循环

    在while循环中不小心把条件写错了就会出现死循环的情况,程序永远也停不下来。

    #计算100以内偶数的和

    count =0

    sum= 0 #总和

    while count >-1:    #count > -1 永远为真 while无限循环if count%2==0: #判断是否为偶数

    sum+=count #是偶数就相加

    count+=1 #计数加一

    print('这里风好大,根本停不下来!!!')

    break 和 continue

    如何在循环体中终止循环呢,这就用到了break

    #计算100以内偶数的和

    count =0

    sum= 0 #总和

    while count >-1:      #count > -1 永远为真 while无限循环

    if count ==100:print('即使风再大,我也能停下!!!')break        #结束本层循环,循环终止

    if count%2==0: #判断是否为偶数

    sum+=count #是偶数就相加

    count+=1 #计数加一

    print('这里风好大,根本停不下来!!!')

    break语句:用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。

    #计算100以内偶数的和

    count =0

    sum= 0 #总和

    while count >-1:      #count > -1 永远为真 while无限循环

    if count ==50:print('风这么大,我只能停一下!!!')continue #结束本次循环,进入 下一次循环

    if count ==100:print('即使风再大,我也能停下!!!')break        #结束本层循环,循环终止

    if count%2==0: #判断是否为偶数

    sum+=count #是偶数就相加

    count+=1 #计数加一

    print('这里风好大,根本停不下来!!!')

    continue语句:告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环

    小结:

    break跳出整个循环,循环终止

    continue跳出本次循环,执行下一次循环

    else语句

    在 python 中,while … else 在循环条件为 False 时执行 else 语句块:

    count = 0

    while count <5:

    print('循环正在运行中')

    count+=1

    else:

    print('循环终止了')

    结果

    注意:

    else 语句只有在while循环正常循环完毕(循环条件为False)才执行

    通过break终止循环不会执行

    eg:

    count =0while count <5:if count == 3:break

    print('循环正在运行中')

    count+=1

    else:print('循环终止了')

    结果

    有问题错误欢迎留言

    展开全文
  • 无限循环啦!
  • C语言while循环语句 do while语句 for循环语句

    万次阅读 多人点赞 2019-06-10 14:17:53
    一、循环结构的思想及意义: 知道了循环结构,那么在生活中也一样,我们每天都在重复做着相同的事情,例如:吸气呼气的过程;又如夏天开电扇,电扇一圈一圈的转,这都是在重复。现在大家玩个游戏,一个人A来说一个人...
  • Python while循环语句详解 Python 中,while 循环和 if 条件分支语句类似,即在条件(表达式)为真的情况下,会执行相应的代码块。不同之处在于,只要条件为真,while 就会一直重复执行那段代码块。 while 语句的...
  • 在这一节练习中,我们向大家介绍一下C#中的另一种重要的循环语句,for循环。 for(表达式1;表达式2;表达式3) { 循环体 } 表达式1:一般为赋值表达式,给控制变量赋初值; 表达式2:逻辑表达式,循环控制条件;当...
  • 主要介绍了c#入门之循环语句使用详解,有for循环和do/while的示例,需要的朋友可以参考下
  • while死循环

    千次阅读 2018-10-18 21:45:52
    1、没有自增自减变量 public static void main(String[] args){ int x = 0;... while( x &lt; 3 ) { System.out.println("value of x : " + x ); //i++; continue; } } ...
  • 循环语句—do…while循环

    千次阅读 2022-04-13 09:34:17
    3.do……while循环语句 3.1do……while循环语句格式 3.2三种循环的区别 3.3总结三种循环的区别 3.do……while循环语句 3.1do……while循环语句格式 基本格式: do { 循环体语句; } while(条件判断...
  • 2.死循环: 循环条件永远是满足的 while True: usd = int(input("请输入美元:")) print(usd * 6.9) if input("输入q键退出:"): break # 退出循环体 输出结果 请输入美元:8 55.2 输入q键退出: 请输入...
  • Shell while 语法(: 死循环

    千次阅读 2022-01-18 17:37:51
    while 语法格式 # for 写法一: while [ 判断条件 ] do echo "循环输出" done # for 写法二: while [ 判断条件 ];...# 通过 : 进行死循环,: 会一直为 true while : do echo "$i" let i++ done ..
  • (1.0分)【判断题】所有for循环语句都可以用while循环语句改写。 (1.0分)【简答题】编写程序,计算并输出 1~100间所有奇数的和。 (10.0分)【判断题】python的库是指标准库和第三方库。 (1.0分)【填空题】若 a=1,b=2,c...
  • Linux shell循环命令 while死循环的用法

    千次阅读 2022-06-13 17:45:01
    作为硬件工程师,偶尔会用到Linux shell编程,这里只将while死循环,有相关需求的工程师可以参考。死循环也就是无限循环,它由 while true (表示条件始终为真)或 while : (表示空表达式)组成,其中冒号(:)等效于无...
  • shell编程之while死循环

    千次阅读 2021-05-13 19:31:11
    那在shell脚本中的死循环该怎么呢?对于熟悉C语言的猿人们来说,最简单的死循环应该这样:-------------------------------------------------------------------------while(1){//do something}---------------...
  • while 死循环的三种方式

    千次阅读 2020-04-23 23:01:43
    while(1) { ; //加 一个分号 } while(1) { } while(1); 这个比较常见 static void SPIFlashWaitWhenBusy(void) //等待状态寄存器变为0 { while (SPIFlashReadStatusReg1() & 1); } ...
  • while死循环

    千次阅读 2020-11-13 23:30:51
    1.while死循环while+条件 在条件不改变且条件一直为真时,是死循环。 2.如下图是个死循环,因为while后边的条件一直是真,所以程序什么也不显示。 ![在这里插入图片描述]...
  • Python-while循环语句

    2021-06-02 21:23:09
    while循环基础 while循环练习 while循环嵌套 一、while循环基础 while语句的基本语法: 初始条件设置 —— 通常是重复执行的 计数器 ...while 条件(判断 计数器 是否达到 目标次数): ...while循环之死循环 ...
  • for循环死循环语句

    千次阅读 2021-05-20 01:32:00
    for语句while语句还有do while语句1:for循环for语句的格式为:for (初始化语句; 条件语句; 控制语句){语句1 ;语句2 ;。.语句n ;}for 语句的执行顺序是:首先执行“初始化语句”;然后测试“条件语句”;若条件...
  • C语言中的while循环语句

    千次阅读 2022-04-05 15:16:40
    日常生活中除了选择之外,还有很多循环做的事情,比如说三点一线的生活,日复一日的工作,每天都在重复着一样的事情,这就是循环,那么C语言中的循环语句是什么样的呢,开始今天的分享。 while循环 基本语法格式 ...
  • python基础——while循环语句

    千次阅读 2020-08-24 17:04:43
    1.1 while语句基本语法 初始条件设置——通常是重复执行的 计数器 while条件(判断 计数器 是否达到 目标次数): 条件满足时,做的事情A 条件满足时,做的事情B 条件满足时,做的事情C ........... 处理条件...
  • Java while循环语句

    千次阅读 2021-02-12 14:48:21
    Java while循环语句循环语句除了for循环之外还有while和do..while,接下来我们先来看一下while循环,首先学习while循环的语法结构,如下图所示:图6-29:while循环语法结构通过上图可以看出while循环的语法结构非常...
  • shell脚本(三)while循环语句

    千次阅读 2021-05-11 19:23:13
    理论部分:循环的意思就是让程序重复地执行某些语句;...while会出现死循环的过程,因此循环体内的命令序列内应包括修改测试条件的语句while语句的语法结构:注意:使用while循环语句时,有两个特殊的条...
  • While 循环语句 和do while循环语句

    千次阅读 2018-11-01 19:54:02
    While循环语句的格式 while(循环条件){ } 如果循环条件的值为true,那么就执行大括号里面的内容,否则不执行大括号里面的内容(如果大括号外面还有内容的话就直接执行大括号外面的内容) 注意:循环条件后面不能加...
  • 分支语句和循环语句——循环语句——while详解

    千次阅读 多人点赞 2022-04-30 19:25:39
    3.循环语句while): a.whille和if的区别 b.while中的break和continue的作用

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 86,925
精华内容 34,770
关键字:

while死循环语句怎么写