程序员成长日记之(一)从渣渣到菜鸡

day_04《Think in Java》读书笔记(控制执行流程)

java中保留goto关键字,但没有经典goto那么好用,在处理特殊问题的时候可以使用;

4.1 true和false
条件表达式常用;

int a=1;
    if(a!=0){
	//code;	          
    }else{
    //大部分公司规范要求有if必须有else,无论是否有语句需要执行;
    }

4.2 if-else
条件语句:

//基本形式
public class IfDemo01{
    static int result=0;
    static void guess(int guessNum,int target){
        if (guessNum>target)
            result=+1;
        else if (guessNum<target)
            result=-1;
        else
            result=0;
    }
    public static void main(String[] args) {
        guess(2,1);
        System.out.println(result);
        guess(1,2);
        System.out.println(result);
        guess(0,0);
        System.out.println(result);

    }
}
//1
//-1
//0
//项目常方式:与花括号一起使用,形成嵌套判断,如果单层判断条件过多,则使用switch语句

4.3 迭代(循环)

//基本形式
while (boolean-expression)
	//statement;
//新判断boolean-expression的值,如果为真执行statement; 直到布尔表达式为假,循环结束;
//样例
public class WhileDemo{
    static boolean condtion(){
        boolean result = Math.random()<0.99;
        System.out.println(result+",");
        return result;
    }
    public static void main(String[] args) {
        while (condtion())
            System.out.println("这个结果小于0.99'while'");
        System.out.println("这个结果大于等于0.99,退出'while'");
    }
}
//true,
//这个结果小于0.99'while'
//true,
//这个结果小于0.99'while'
//......
//false,
//这个结果大于等于0.99,退出'while'
4.3.1 do-while
//基本形式
do
	//statement;
while (boolean-expression);
//statement语句至少执行一次(相比之下while更加常用)
4.3.2 for
//基本形式
for (initialization;boolean-expression;step)
	//statement;
//执行顺序initialization-->boolean-expression-->statement-->step(步进、迭代)
public class ForDemo00{
    public static void main(String[] args) {
       for (char x=0;x<128;x++)
           if (Character.isLowerCase(x))
               System.out.print(x);
    }
}
//打印出a~z所有小写字母
4.3.3 逗号操作符
public class ForDemo01{
    public static void main(String[] args) {
        for (int i=1,j=i+5;i<3;i++,j=i*2){
            System.out.println(i+"\t"+j);
        }
    }
}
//1    6
//2    4

4.4 foreach语法

//基本形式
public class ForeachDemo{
    public static void main(String[] args) {
        Random random = new Random(47);
        float f[]=new float[3];
        for (int i = 0;i<3;i++)
            f[i]=random.nextFloat();
        for (float x:f)
        //使用x作为一个容器去便利f[]里的所有元素,并输出
            System.out.println(x);
    }
}
//输出三个随机数

4.5 return
一个方法返回什么值;
退出当前方法,并返回那个值;

//改写IfDemo01
public class IfDemo02{
    static int guess(int guessNum,int target){
        if (guessNum>target)
            return +1;
        else if (guessNum<target)
            return -1;
            return 0;
    }
    public static void main(String[] args) {
        System.out.println(guess(2,1));
        System.out.println(guess(1,2));
        System.out.println(guess(0,0));
    }
}
//1
//-1
//0

4.6 break和continue

  1. 在循环控制语句的循环体中,可以使用continue语句,表示不再继续循环体后面的代码,继续下一次循环;
  2. 可以使用break语句,表示终止当前循环,跳出循环体;
  3. 可以在for、while、do前用合法标识符加标号,用continue/break 标号;语句继续指定的循环;

1)一般的continue会退回最内层循环的开头(顶部),并继续执行。
2)带标签的continue会到达标签的位置,并重新进入紧接在那个标签后面的循环。
3)一般的break会中断并跳出当前循环。
4)带标签的break会中断并跳出标签

//break用法
public class BrakDemo{
    public static void main(String[] args) {
        loop1:   for(int i=0;i<5;i++){
            loop2:  for(int j=0;j<6;j++){
            //当i==j时,终止i循环
                if(i==j){
                    break loop1;
                }
                System.out.println("i="+i+" j="+j);
            }
            System.out.println("结束i循环的第"+i+"次循环");
        }
        System.out.println("结束i循环");
    }//结果:结束i循环
}
//countinue用法
public class CountinueDemo01{
    public static void main(String[] args) {
        loop1:for(int i=0;i<4;i++){
            loop2:for(int j=0;j<3;j++){
            //当i==j时,继续i循环
                if(i==j){
                    continue loop1;
                }
                System.out.println("i="+i+" j="+j);
            }
            System.out.println("结束i循环的第"+i+"次循环");
        }
        System.out.println("结束i循环");
    }
}
//i=1 j=0
//i=2 j=0
//i=2 j=1
//i=3 j=0
//i=3 j=1
//i=3 j=2
//结束i循环的第3次循环
//结束i循环

public class  CountinueDemo02{
    public static void main(String[] args) {
        for(int i=0;i<3;i++){
            for(int j=0;j<2;j++){
            //当i==j时,继续i循环
                if(i==j){
                    continue;
                }
                System.out.println("i="+i+" j="+j);
            }
            System.out.println("结束i循环的第"+i+"次循环");
        }
        System.out.println("结束i循环");
    }
}
//i=0 j=1
//结束i循环的第0次循环
//i=1 j=0
//结束i循环的第1次循环
//i=2 j=0
//i=2 j=1
//结束i循环的第2次循环
// 结束i循环

4.7 goto(省省吧,不到非用不可不用)
4.8 switch(选择语句)

public class A{
    public static void main(String[] args) {
        Random rand = new Random();
        for (int i = 0; i < 100; i++) {
        	//此处产生0~25的随机数,加上'a'(这里涉及到一次隐式转换),就是97~122,转为char类型表示a~z小写字母
            int c = rand.nextInt(26)+'a';
            System.out.println((char)c +","+c+":");
            switch (c){
                case 'a':
                case 'e':
                case 'i':
                case 'o':
                case 'u':
                    System.out.print("vowel");
                case 'y':
                case 'w':
                    System.out.print("sometimes a vowel");
                    break;
                default:
                    System.out.println("consonant");
            }
        }
    }
}

只要有一个入口,就可以执行到最终,或者遇到break语句,如果没有找到,则执行default语句;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值