第六天------------循环

package javaday6;

import java.util.Random;
import java.util.Scanner;

public class Test {
    /**
     *     2.do-while:
     *         语法:do{
     *                     //循环体
     *                 }while(条件判断);
     *         注意:最少执行循环体的次数为1次。
     *         执行过程:
     *                 1.先执行循环体
     *                 2.判断循环条件,如果条件为true,则继续执行循环体
     *                 3.如果条件为false,则结束循环。
     * 
     * 
     *     3.for:
     *         语法:for(表达式一;表达式二;表达式三){
     *                     //循环体
     *             }
     *             1.表达式一:初始化循环变量
     *             2.表达式二:判断条件
     *             3.表达式三:循环变量的修改
     *         执行过程:
     *             1.先初始化循环变量(表达式一)
     *             2.判断循环条件(表达式二)
     *             3.如果条件成立则执行循环体
     *             4.循环体执行完成则执行循环变量的修改(表达式三)
     *             5.重复执行2,3,4步骤
     *         注意:for循环最少执行次数0次
     * 
     * 其他的for循环形式:
     *         1.for(;i<10;i++){
     *             }
     *         缺少循环变量的初始化。
     *         2.for(int i=0;;i++){
     *             }
     *         缺少判断条件,是一个死循环。
     *         3.for(;;){
     *             }
     *         省略了三个表达式,在语法上没有问题,但是是一个死循环
     *         4.for(int i;i<10;){}
     *         没有语法错误,但是也是死循环。
     * 
     * 循环控制语句:
     *         1.break:当在循环体中遇到break关键字就代表循环结束。
     *         2.continue:跳过当次循环,进入下一次循环。
     * 循环嵌套:
     *         循环嵌套的执行过程:
     *         1.先执行一次外层的循环,然后在 执行一轮内层循环。
     *         2.然后在继续执行一次外层循环,以此类推。
     * 
     * 生成随机数:
     *         1.使用Math类
     *             double d=Math.random();
     *             产生的随机数为0-1之间的一个数字,包括0不包括1。
     *         2.使用Random对象
     *             1.创建Random对象
     *                 Random r=new Random();
     *             2.调用random对象的方法产生随机数
     *                 int num=r.nextInt(边界);
     *                 产生的随机数为>=0 并且<边界的数据。
     * 
     * 
     * 
     */
    
    public static void main(String[] args) {
        //使用Math类产生一个随机数
        int d=(int) (Math.random()*50);
        System.out.println("随机数为:"+d);
        //使用Random对象产生一个随机数
        Random r=new Random();
        int num=r.nextInt(100);
        System.out.println(num);
        
        
        
        
        
        
        
        int sum=0;//存放和
        int i=0;//循环变量
        do {
            i++;
            //计算累加
            sum+=i;
            
        }while(i<100);
        System.out.println("1-100的和:"+sum);
        
        System.out.println("--------------for循环--------------");
        int sum1=0;
        for(int j=1;j<=100;j++) {
            sum1=sum1+j;
        }
        System.out.println("1-100的和:"+sum1);
        int a;
        for(a=3;a<10;a++) {
            
        }
        
        for(int b=0;;b++) {
            if(b==10) {
                break;
                //System.out.println("sjhgdfhksgdf");
            }
            System.out.println(b);
        }
        /*int sum2=0;
        for(int b=0;b<10;) {
            sum2=sum2+b;
            b++;
        }
        System.out.println(sum2);*/
        
        //输出10到20之间第一个能被3整除的数字
        for(int x=10;x<=20;x++) {
            if(x%3==0) {
                System.out.println(x);
                break;
            }
        }
        System.out.println("------------------------");
        //输出1-10之间不能被3整除的所有数字
        
        for(int y=1;y<=10;y++) {
            //判断是否能被3整除
            if(y%3==0) {
                continue;
            }
            System.out.println(y);
        }
        
        /**
         * 使用*打印如下图形:
         *         ******
         *         ******
         *         ******
         *         ******
         * 
         *         *
         *         **
         *         ***
         *         ****
         *         *****
         *         ******
         *             *
         *            ***
         *        *****
         *       *******
         *        *****
         *         ***
         *          *
         * 
         * 
         * 
         */
        //用来控制打印的行数
        for(int m=0;m<4;m++) {
            for(int n=0;n<6;n++) {
                System.out.print("*");
            }
            System.out.println();//换行
        }
        
        /*Scanner s=new Scanner(System.in);
        System.out.print("请输入打印的行数:");
        //接受用户输入
        int row=s.nextInt();
        //控制行数
        for(int l=1;l<=row;l++) {
            //控制*的个数
            for(int z=0;z<l;z++) {
                System.out.print("*");
            }
            System.out.println();
        }*/
        
        
        
        
        
    }
    
    

}
作业:

  1. 输出9*9口诀。  

         程序分析:分行与列考虑,共9行9列,i控制行,j控制列。

package demo1;

 

public class Demo85 {

  public static void main(String[] args) {

  int i,j;

  int s=1;

  for(i=1;i<10;i++){

     for(j=1;j<=i;j++){

       s=i*j;

       System.out.print(s+" ");

     }

     System.out.println();

  }

  }

 

 

 

}

 

 

 

 

  1. 题目:打印出如下图案(菱形)  

*  

***  

***** 

*******  

***** 

***  

*  

         程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重   for循环,第一层控制行,第二层控制列。

package demo1;

 

import javax.swing.text.StyledEditorKit.ForegroundAction;

 

public class Demo9 {

  public static void main(String[] args) {

     int i,j;

     for(i=0;i<4;i++){

       for(j=4;j>i+1;j--){

         System.out.print(" ");

       }for(j=0;j<2*i+1;j++){

         System.out.print("*");

       }

       System.out.println();

     }

 

  for(i=0;i<3;i++){

     for(j=0;j<i+1;j++){

       System.out.print(" ");

      

     }for(j=3;j>=2*i-1;j--){

       System.out.print("*");

     }

     System.out.println();

  }

  }

}

 

 

  1. 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。  

package demo1;

 

import java.util.Scanner;

 

public class Demo10 {

  public static void main(String[] args) {

     Scanner scanner=new Scanner(System.in);

     System.out.println("请输入一个数字:");

     int mscanner.nextInt();

     int sum=0;

     int s=0;

     int a=2;

     int j=1;

       while (j<=m) {

         s=s+a;

         sum=s+sum;

         a=a*10;

         ++j;

       }

          

      

      

    

     System.out.println("结果为:"+sum);

    

  }

 

}

 

         程序分析:关键是计算出每一项的值。

  1. 随机读取7个数(1—50)的整数值,每读取一个值,程序打印出该值对应个数的*

package demo1;

 

import java.util.Random;

 

public class Demo91 {

  public static void main(String[] args) {

    

     for(int i=1;i<=7;i++){

       Random r=new Random();

       int num=r.nextInt(50);

       System.out.print("随机产生的数为:"+num);                                                                                                                                                                                                                                                                                                                                                                                                 

       for(int j=1;j<=num;j++){

         System.out.print("*");

       }

       System.out.println();

     }

  }

 

}

 

  1. 编写一个猜数字游戏

先产生一个(100以内)的随机数,保存在一个变量中,然后让用户通过键盘输入猜,如果用户输入的比随机数大了,就提示用户说太大了,小了就提示用户太小了,然后让用户继续输入猜,至到猜对为止。

提示:使用循环来控制用户输入,如果用户猜对循环结束否则就继续循环。

package demo1;

 

import java.util.Random;

import java.util.Scanner;

 

public class Demo93 {

  public static void main(String[] args) {

     boolean boo=true;

     Scanner scanner=new Scanner(System.in);

     Random r=new Random();

     int num=r.nextInt(100);

     System.out.println(num);

     do{

      

       System.out.println("请输入你猜的的数:");

       int  m=scanner.nextInt();

       if(m>num){

         System.out.println("猜大了!!!");

         boo =true;

       }else if(m<num){

         System.out.println("猜小了!!!");

         boo=true;

       }else  if(m==num){

         System.out.println("猜对了!!!");

         boo=false;

       }

 

      

     }while(boo);

        

  }

 

}

 

                                                                                                                                                              

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值