thinking in java逍遥游记 之 夜的第四章 - 控制执行流程

总结:  1. 本章基本上没有什么东西,主要掌握一些基本的语法,熟悉基本的执行过程!     

应用: 1 .  关于吸血鬼的问题

              2.  使用outer跳出多存循环

易错点:1. continue是跳出本次循环,重新开始下一次的循环

                2.  break跳出最内一层的循环,

                3.  return 直接跳出整个方法。

 

public class ForTest {
 
 public static void main(String[] args) {
        for(char c = 0;c<128;c++){          //注意:字符可以用数字表示的
         if(Character.isLowerCase(c)){
             System.out.println((int)c+" "+"Character="+c);   //字符也可以转化为int类型
         }
          /*
           *     97 Character=a
                  98 Character=b
                  99 Character=c
                   ...
                121 Character=y
                122 Character=z
          */
        }
 }
}

public class WhileTest {
  static boolean getRandomBoolean(){

        boolean b = Math.random()< 0.99; 
        System.out.println(b);
  return b;
 }
 public static void main(String[] args) {
  while(getRandomBoolean()){
   System.out.println("哈哈,看来你小子是真的");   //默认生成大于0.99的数为真的
  }
 }
}


public class LabelTest {

 /**
  * @author: huxin
  * 关于标签outer和inner的使用
  */
 public static void main(String[] args) {
  int i = 0;
  outer:
     while(true){
      System.out.println("我开始了inner");
      while(true){
       i++;
       if(i==1){
        System.out.println("continue");
        continue;    //这次循环不走了,开始下一次循环
       }
       if(i==2){
        System.out.println("continue inner");
        continue outer;
       }
       if(i==3){
        System.out.println("break");
        break;
       }
       if(i==4){
        System.out.println("break outer");
        break outer;
       }
      }    
     } 
 }
}

//本章练习题目


import java.util.Random;
import static java.lang.Math.*;
//本程序写得很糟糕,仅仅测试之用!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
public class Practice {
 public static void main(String[] args) {
    //第一题:循环打印出1-100的值。
    for(int i = 1;i<=100;i++){
      System.out.println(i);         
    }
   
    //第二题:随机生成100以内的正整数,然后使用if,else比较其紧跟的值得大小
    Random random = new Random();
    int j =0;
    for(int i =0;i<25;i++){
       int k = random.nextInt(100);
       if(i==0){
        System.out.print(k);
        j = k;
       }else{
        if(k>j){
        System.out.print("<"+k);
        j=k;
        }else if(k==j){
        System.out.print("="+k);
        }else{
        System.out.print(">"+k);
        j=k;
        }
       }
    }
   
    //第三题: 对于一个死循环,使用 Ctrl+C 来中断程序的运行
   
       //第四题:使用两个for循环,和取余操作符来打印素数
    for(int i=1;i<=100;i++){
     boolean flag = false;
     if(i==1||i==2){
      flag = false;
     }else{
       for(int c =2;c<=sqrt(i);c++){
       if(i%c==0){
       flag = true;
       break;
       }
       }
     }
     if(flag){
      continue;
     }
     System.out.println(i);
    }
   
    switchTest();
 }
 
 //练习九,测试break
 private static void switchTest(){
  Random random = new Random(47);     //关于Random的种子问题还没有弄清楚啊
  int c = random.nextInt(26)+'a';        //根据字符串上下文进行转换
  System.out.println((char)c);
  for(int i=0;i<3;i++){
   switch(c){
     case 'a':  System.out.println("aaaaa");
     case 'y':  System.out.println("yyyyy");  break;
     case 'z':  System.out.println("zzzzz");  break;       //其实switch中的break不能终止for循环。
     default:   System.out.println("hahah");  break;
   }
  }
 }
}


//吸血鬼的问题

 import java.util.Arrays;
public class Vampire {
  public static void main(String[] arg) {
    String[] ar_str1;
 String[] ar_str2;
    int sum = 0;
    int from;
    int to;
    int i_val;
    int count = 0;
    // 双重循环穷举
    for (int i = 10; i <50; i++) {
      for (int j = 10; j <100; j++) {
        i_val = i * j;
        if (i_val % 100 == 0 || (i_val - i - j) % 9 != 0) {
          continue;        //跳过这一次循环,到下一次循环。
        }
        count++;
        ar_str1 = String.valueOf(i_val).split("");
        ar_str2 = (String.valueOf(i) + String.valueOf(j)).split("");
      
        Arrays.sort(ar_str1);
        Arrays.sort(ar_str2);
        if (Arrays.equals(ar_str1, ar_str2)) {    // 排序后比较,为真则找到一组
          sum++;
          System.out.println("第" + sum + "组: " + i + "*" + j + "=" + i_val);
        }
      }
    }
    System.out.println("共找到" + sum + "组吸血鬼数");
    System.out.println(count);
  }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值