zoukankan      html  css  js  c++  java
  • Java第二课 分支与循环

      1.异或运算符的应用:

      变量互换;

      

                    int i1 = 3; // i1 = 011
    		int i2 = 5; // i2 = 101
    		System.out.println("i1的值:" + i1);
    		System.out.println("i2的值:" + i2);
    		System.out.println("进行变量互换"); 用到了异或运算符
    		
    		i1 = i1 ^ i2; // i1 = 110
    		i2 = i1 ^ i2; // i2 = 011
    		i1 = i1 ^ i2; // i1 = 101
    
    		System.out.println("i1的值:" + i1);
    		System.out.println("i2的值:" + i2);            
    

       例题:

    int a = 1, b = 2, c = 3;  是对的,但是格式不是很规范
      int i = 1, j;    j没有定义
      float f1 = (float) 0.1;  小数默认的都是为double,所以要强转成float;
      float f2 = 123;    一开始应该是为默认的int型,它的优先级小于float,所以是正确的;
      long l1 = 12345678, l2 = 88888888888L;l2的形式不为long型,加一个L是为了强制转换为long型;
      double d1 = 2e20,科学计数法; d2 = 124;   默认为int型,显示的是double.
      byte b1 = 1, b2 = 2, b3 =(byte) 129;   这里面129已经超过了byte的范围,要强制转换一下
      j = j + 10; j没有定义 
      i = i / 10;    得出i = 0;
      i = i * 0.1;   i = 0,因为i*0.1得出的结果最后还是int,所以只取小数点前面的0,不是四舍五入.
      char c1 = 'a', c2 = 125; 
      
      float f3 = f1 + f2; 正确
      float f4 = f1 + f2 * 0.1;  改成double.
      double d = d1 * i + j;   正确
      double f = d1 * 5 + d2;  正确

          知识点:

    分支与循环

          作用域, 每一对{  }中间的部分叫作用域

          while (逻辑表达式) {
     
            }

          do {
     
    } while(逻辑表达式);

        continue  终止当前循环, 继续下次循环

        break  跳出当前循环

        

        例子:

          

                    int i = 1;
    
    		while (i <= 10) {
    			i++;
    			
    			if (i == 5) {
    				continue;
    			}
    
    			System.out.println("i: " + i);
    

          总结: 分析一下,输出来的结果里没有1,是因为一开始 i 就加一,变为2,开始输出,当 i = 5时,终止当前循环,进行下次循环.

      switch...case..default

      1, 防止case穿透

      2.同样的case条件可以合并

      3, if分支和switch分支语句有什么区别(switch语句只能判断int和String)

      

        for (表达式1; 表达式2; 表达式3) {

            }

          先执行表达式1
          再执行表达式2(逻辑表达式)
          当表达式2返回true, 执行{}代码
          再执行表达式3

        1.  1!+2!+3!+4!+5! 求的是阶乘.

                   int result  =  0;//1!+2!+3!+4!+5! 求的是阶乘.
    		int f = 1 ;
    		for(int i = 1; i <= 5; i++ ){ 
    				f = f*i;
    				result += f;//result = result + f;result = 0+1=1; result = 1+2;
    		}
    		//总结: f= f*i,f=1*1(1!); f=1*2(2!); f = 1*2*3(3!)
    		System.out.println("result:"+result);
    

           2.打印100以内前5个能被3整除的整数

        

    int counter = 0; //计数器的作用,用来判断出现的被3整除的整数的个数
    
                for ( int i = 1; i <= 100 ; i++ ){
    			if ( i%3 == 0 ){	
    				
    				counter =  counter + 1;
    				System.out.println("i:"+i);
    			}
    			if (counter == 5){
    				break;
    			}
    		}
    

           3.打印4*5的矩形

          

            for ( int  i = 1; i<=5 ; i++ ){
    			for (  int j = 1; j<=4 ; j++ ){
    				System.out.print("*");  //控制的是列,其中println,如果去掉ln,就是不换行
    			}
    			System.out.println(); // 控制的是行
    		}    
    

         4.打印101-200之间的质数

        

    for ( int i = 101; i<=200 ; i++){
    				int k = 0;  //定义的是能选出质数
    				for( int j = 2 ; j<i ; j++){    
    					
    					
    						if( i%j == 0){ 
    								k = 1;//不是质数
    								break;  //跳出这个循环
    						}		
    				}
    				if( k == 0){ 
    					System.out.println(i);
    				}
    		}
    
    
        
    

         这一步的目的是从这些数取出来,只要是能被除了1和本身之外,不能被其他的数整除的就是质数.

  • 相关阅读:
    [HNOI2007]最小矩形覆盖
    [HAOI2008]下落的圆盘
    JSON相关 JSON在线解析 JSON压缩转义工具 JSON着色工具 JSON 在线格式化工具 在线XML/JSON互相转换工具 XML、JSON在线转换
    速度竟差9倍!6款32GB USB3.0优盘横评
    Linux 中用 dd 命令来测试硬盘读写速度
    CrystalDiskMark v7.0.0h中文版
    个人觉得,不单是教育缺失的问题,贫穷才是真像。贫穷分
    就算是3.0的U盘,写入速度10M及以下也是正常的,U盘用很差的闪存颗粒的话就算10Gbps的USB3.1也是很慢的。
    USB历代标准及接口发展
    测试 USB 存储设备读写性能(Mb/s),平均读写速度等
  • 原文地址:https://www.cnblogs.com/zuo72/p/7828387.html
Copyright © 2011-2022 走看看