循环

while do while for

  1. while 先判断,后执行循环,至少一个boolean判断结果
    两个关键字 :break退出循环,往往配合控制语句判断条件的
    continue退出当次循环
  2. do while 先执行一次循环,然后判断,俗称倒while循环
  3. for 循环判断条件为真,然后执行循环。
  4. 要求倒叙99,要求第一不能有break,第二用do while

开发项目的错误

  1. 语法错误,红线,第一时间修改,更多针对的是java程序
  2. 抛异常,exception,运行时错误,提示错误的类型和行数 at…
  3. 逻辑错误没有任何提示,结果不符合需求的要求
  4. 维护错误项目发布客户服务器提示的错误信息

案例

  1. 奇偶数各自之和为例的需求分析:从if判断奇偶数条件入手的

    (1)100以内,循环在0-100 循环101次

    (2)创建奇偶数的判断条件,偶数判断:if(index%2==0)

    (3)各自之和,首先在循环之外创建两个各自的int变量

    int index=0,ji=0,ouo=0;
    while (index<=100) {
       if(index%2==0) {
         System.out.println("偶数"+index);//50
         ouo+=index;
         }else {
            ji+=index;
           }        	        
    	index++;
    	}
    System.out.println("奇数"+ji+",偶数:"+ouo);
    
  2. 从while的index索引的变化入手:
    (1))100以内,循环在0-100 循环101次
    (2)索引的变化长度就不是1了,是 index=index+2;
    (3)各自之和,首先在循环之外创建两个各自的int变量ouo+=index;

    int index=0,ouo=0;
     while (index<=100) {      	
         ouo+=index;        	        
       	index=index+2;
     }
     int ji=0;
     index=1;
     while (index<=100) {        	
    	ji+=index;      	        
    	index=index+2;	
    }
    System.out.println("奇数"+ji+",偶数:"+ouo
    

案例延伸

  1. 直至用户控制台输入一个合法的数字为止
    int u=0;
    //导入控制台输入的操作对象,并且实例化,并且构造函数赋值当前操作系统对象
    Scanner sca=new Scanner(System.in);		
    int number=0;
    boolean condition=true;
    //判断输入的数字是0-10,否则视为非法的数字
    do {
    	System.out.println("input number:");
    	number=sca.nextInt();
    	if(number>=0 && number <11) {
    		ystem.out.println("合法的数字");
    		condition=false;
    	}else {
    		System.out.println("输入的数字非法,重新输入");
    	  }
    } while (condition);
    System.out.println("继续后续功能.....");
    }
    

for语法

  1. for必须()内需要两个分号
    (1)for完成一个死循环 for (;😉 {}
    (2)for (变量声明可以多个;条件判断结果只有一个结果; 判断趋向也可以是多个)
    (3)for ( : ) {} 适合数组和集合操作遍历的,但是不能独立存在

for循环案例

  1. 二者相向而行,从a到b的距离是100,a到b的速度是每秒1米,b到a的速度是每秒2米
    int a=0,b=100;
    for(;a<=b;a++,b-=2){
    System.out.println(a+"-"+b);
    }

  2. 1 1 2 3 5 8…求出第20个数字?

    int a = 1, b = 1, c = 0; 
    for (int i = 1; i <= 18; i++) {		   
        c = a + b;  
    	a = b;  
    	b = c;  
    	 System.out.println(c);
     }		
    
  3. 1 2 4 7 11 16…求出第20个数字?

int arr[ ]=new int[20];
arr[0]=1;
for(int i=1;i<arr.length;i++) { 
	arr[i]=arr[i-1]+i;
 }  
 System.out.println("第20项为:"+arr[19]);

九九乘法表

  1. 需求分析:
    (1)显示的效果是一个直角三角形,那就说明需要一个循环来嵌套
    (2)纵向的打印每行递减(或者递增)1,也就是纵向的循环打印过程中是有规律的
    (3)首先用矩阵嵌套,然后完成直角三角形的搞定,递减(递增)1的规律搞定
    a. 外层循环负责纵向的循环执行,内嵌循环负责横向打印执行,所以显示结果为矩阵、矩形
    b.如果显示不是一个规则的矩形,那么分析横纵的是否有规律,比如直角三角形
    for (int i = 0; i < 7; i++) {//直角三角形纵向7行
    for (int j = 7-i; j > 0; j–) {//内嵌循环每行递减1次循环
    c.循环逻辑思维的灵活性体现之一就是++未必是递增,–未必是递减
    for (int i = 0; i < 7; i++) {//直角三角形纵向7行
    for (int j = 0; j < 7-i; j++) {
    和上面结果是一样的,是循环的方向变化的
    (4)虽然是有规律的横纵,但是长度是固定的,不需要break

    int i,j;
    for(i=9;i>=1;i--){
      for( j=i;j>0;j--){
        System.out.print(i+"*"+j+"="+(j*i)+" ");	
      }
    System.out.println();
    }
    

菱形

  1. 需求分析
    (1)控制台上执行打印了 4个三角形, 2个空格直角三角形,为了形成菱形的等腰效果,2个等腰三角形
    (2)需要上下两个for完成,而每一个for又都嵌套两个for完成.每一个外层的for负责纵向打印,每一个内嵌的for负责自身区域的横向打印。
    for(int i){
    for(int j){
    A
    }
    // 纵向循环执行的每一次循环,都会执行一行的A 直角三角形打印,和一行的C等腰三角形的打印。依此类推,A的每行循环都会纵向递减1,等腰都会递增2.
    for(int n){
    C
    }
    }
    //纵向循环每次循环,都会执行一套内嵌循环横向一行的打印执行
    //j n受限于i的变化而有规律的变化的。也是菱形的一大难度,
    j:直角 n等腰
    i j n
    0 5 1
    1 4 3
    2 3 5
    3 2 7
    4 1 9
    5 0 11
    j=4-i
    n= 2
  2. 代码
   //上半部分:
   for(int i=0;i<5;i++){
     for(int j=1;j<5-i;j++){
	 	System.out.print(" ");
	 }
	 for(int k=0;k<2*i+1;k++){
    System.out.print("*");
 }
   System.out.println();
} 
    	 //下半部分
   for(int i=4;i>0;i--){
    for(int j=0;j<=4-i;j++){
	 	System.out.print(" ");
	 }
	for(int k=1;k<2*i;k++){
	    System.out.print("*");
 }
       	 System.out.println();
   } 

空心菱形

  1. ⭐所在循环判断当前循环的最大最小值,执行打印*,否则打印空格

  2. //上半部分:
     for(int i=0;i<5;i++){
    //第一个for循环
    	for(int j=1;j<5-i;j++){
    	 System.out.print(" ");
    	}
    //第二个for循环
    	for(int k=0;k<2*i+1;k++){
    		if(k==0||k==2*i){//空心的话,这个等腰三角形的第一个数跟最后一个数都是*,其余的换成空格
    		   System.out.print("*");
    		 }else{
    		  System.out.print(" ");
    		  }	    		   
    	     }
    	System.out.println();
    	 } 
    //下半部分:
    for(int i=4;i>0;i--){
    //第一个for循环
    	for(int j=0;j<=4-i;j++){
    	  System.out.print(" ");
    	 }
    //第二个for循环
    	for(int k=1;k<2*i;k++){
    	  if(k==1||k==2*i-1){
    		 System.out.print("*");
    	  }else{
    		System.out.print(" ");
    		}    		   
    	 }
    	System.out.println();
     } 
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值