Java 流程控制有图

                                
 
三种结构:
  • 单选
  • 二选一
  • n选一
if(条件表达式){
    执行表达式;
}else if(条件表达式){
    执行表达式;
}else{
    执行表达式;
}

从键盘获取不同类型变量

  • 使用Scanner类
注意:需要根据相应的方法来输入指定类型的值;
如果值的类型不匹配,会报异常InputMisMatchException,程序终止。
调用方法获取输入值
  • 方法:nextXxxx(1st letter capital)String类型 next()
  • Scanner没提供没有单独获取char的方法。可以用String.charAt(0);来获取char
int num = scan.nextInt();
 
提示用户输入的信息
 
*java中不可以使用连续比较 
80 < score <= 90; // wrong, 执行之后,前面是一个bool,无法和90进行比较!
 
会执行
 
*如果if, else if, else的执行语句只有一行,{ }可省略!但不建议省略
标红的语句是独立存在的(因为上一个if-else结构没有加{ }), 不属于if(y>2)结构,所以无论(y > 2)满足与否,都会执行红色语句!
 
配对的就近原则
  • 没有{ }的if语句只能包含下面一行,但如果下一行还是if,那么就再包含一行,所以println(x + y)属于if结构!
  • else与离它最近的if匹配,这个例子下是与(y > 2)配对,所以结果会输出(X is 4)
产生随机数(10 - 99)
(0<= random < 1)
  • 99 - 10 + 1 确认乘积
  • 加上下限,获得目标区间
  • a,b 为闭区间
  • 根据公式,获得的区间是[a, (b+1).0) 因此只能取到b.99999,永远取不到b+1. 强转为int之后,最大为b
 
判断String是否为特定值
String s1;
S1.equals("是");// or S1 == "是";
 

Switch-Case
                          
 
*Get a char form user input: get a single string first and then transferred into a char!
相当于每个case之后没有语句及break,直到case5或者case10才执行然后break!

 
循环结构
FOR
                
 
System.out.print() // print at the same line
System.out.println() // print at individual line
 
初始化条件的作用域
但是如果在Global环境下定义了i,在for循环内再定义i会编译不通过!
 
输出混合
System.out.print() 可以让不同的输出结果显示在同一行,中间没有空格!
System.out.print("hello");
System.out.print("world");
// helloworld
 

While:
    
          • For 循环定义的初始化条件是local var,出了循环不可以调用
          • While循环定义的是Global变量,可以随便调用                      
  1. 初始化条件 2. 循环条件 3. 循环体 4. 迭代条件                      
 

Do -while:
                         
 

while(true) == for(;;)
 
嵌套循环
  • 一般不超过3层
 
 

E.g.
找2到100的所有质数。最小质数:2
Hint
  • use a flag to determine is i % j == 0 or not
  • refresh flag when flag changed
优化
  • break 只对本身非质数的自然数有效,一旦发现可除尽,不需要再去看后面的;但如果本身是质数,还需要验证每一个!
  • j <= Math.sqrt(i) 
    • c = a*b, a == b 是break point,开方之后只需要考虑一般的数字,如果前一般可以除尽,后一般一定有对应的数,不需要两边都考虑。
    • 对本身是质数的自然数起到了作用
针对 变量不能重复定义的问题:
  • 同一作用域中可以反复定义
  • 如果global中定义了,local中不可再定义!
获取当前时间
  • Long 型 现在到1970年midnight的毫秒数
  • long var = System.currentTimeMillis()

特殊关键字
 
标签的Break/ Continue, 结束 指定的循环!
 
 
 
 
 
 
 
 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值