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和本身之外,不能被其他的数整除的就是质数.

原文地址:https://www.cnblogs.com/zuo72/p/7828387.html