流程控制结构

if结构

当关系表达式为true时,执行语句

 if(关系表达式){
//语句块
}

if-else结构

当关系表达式为true时,执行语句块1,否则执行语句块2

if(关系表达式){
//语句块1
}else{
//语句块2
}

if-else嵌套

if(表达式1){
//语句块1
}else if(表达式2){
//语句块2
}else if(表达式3){
//语句块3
}else….

switch结构

switch(整数表达式){
case 条件1:...;break;
case 条件2:...;break;
default:...;break;
}

使用switch时有如下注意点

1. switch(表达式)  只能是整数表达式(int byte char short),switch不能处理long或其他类型。

2. case条件只能是整数常量(int byte char short),不能是变量或者表达式。

3. case条件的内容可以为空,如果为空,则继续执行之下代码。

4. default表示如果没有满足case的条件的其它一切情况。

5. 别忘记写break,会出现”渗透”  (一直执行接下来的代码,直到遇到break或者本代码块执行错误)

for 循环

处理周期性,重复处理的功能。for 大多用于处理 与 次数有关的循环

for(表达式1;表达式2;表达式3){
//语句块;
}

while结构

while(boolean表达式){
// 语句块;
}

当boolean表达式为true时,执行语句块;否则退出循环。while与for结构可以互换。while(true)等价于for(;;){}

do-while结构

do{
//语句块;
}while(boolean表达式);

当boolean表达式为true时,执行语句块。否则退出循环。do-while与while结构的区别在于:如果循环条件一开始就不满足时,while结构不会执行循环体;而d-while结构会执行一次循环体。

注意点

1)尽量使用肯定条件,减少使用否定条件,目的是避免思考误区,减少逻辑错误。

2)减少嵌套层次,一般不要超过。目的是避免思考误区,减少逻辑错误。

3)注意缩进和括号配对!成对写括号,对齐格式以后,在括号中间添代码,如果要删除(注释掉)一定成对的括号删除。

4)适当的减少使用else(否则的情形)

总之:要保持代码的简洁,和很好的可读性。理想的代码要接近自然语言。

多路分支

if else  if  else

switch case

1)if else if else 判断条件灵活适应广泛。

2)switch case 条件必须是整数(byte short char int)。使用限制多,但性能好于if else

3)在工作中 if else使用的更多些。

循环流程

for  while  do--while

for:“经典的用法”是与次数有关的循环。循环时候:i=0 1 2 ... n-1 共计 n 次循环 for(int i=0; i<n; i++){}   其中 i 是 index(序号)的缩写

while: “经常”处理与次数无关的循环

for 和 while 可以相互替换

1) while 可以处理 次数 循环,但是没有 for方便

2) for(; 循环条件 ;) 与 while(循环条件) 等价

3) for(;;) 与 while(true) 等价,都是死循环

4) 只使用for循环可以处理任何循环逻辑

5) 在不能明确循环结束条件时候,可以先使用死循环。在适当的时候 使用 break 结束循环

6) do while 循环  适合循环结束条件在循环体最后的循环流程

continue

continue语句在循环体中,用于结束本次循环而开始下次循环。

break

break用于退出当前语句块。break用在循环体中用于退出循环。

案列

字符串对齐

public static void print(String str){
int count = 8 - str.length();
for(int i=0; i<count; i++){
System.out.print(" ");
}
System.out.println(str);
}

输出 1000 以内的所有质数 (素数),素数:一个数(>=2)只能被自身和1整除的数。如何判断一个数是否是质数?如果一个数除了1 和自身以外,有“约数”就不是质数了!  如 6 = 3 * 2, 6 就不是 质数

如何查找:24 的约数,如果有约数范围一定是:2 ~ <=24/2

for(int n=2;n<=1000;n++){
boolean isPrime=true;
for(int i=2;i<=n/2;i++){
if(n%i==0){
isPrime=false;
break;
}
}
if(isPrime){
System.out.println(n+"是质数");
}
}

输出一个数的全部约数,1 和自身除外

public static void get(int n) {
  for(int i = 2; i < n / 2; i++){
  if(n % i == 0){
  System.out.println(i);
}
}
}

反转一个整数 num = 37195  结果:59173

int num = 37195;
int sum = 0;
while(num != 0){
int last = num % 10;
sum = sum * 10 + last;
num = num / 10;
}
System.out.println(sum);

求PI = 4 * (1/1-1/3 + 1/5-1/7 + 1/9-1/11 ... ) 值

double sum = 0;
for(long i = 1; i < 500000000L; i += 4){
sum += 1.0 / i - 1.0 / (i + 2);
}
double pi = sum * 4;
System.out.println(pi);

找到 100 ~ 999 之间的全部水仙花数(3位自幂数)。如153=1*1*1+5*5*5+3*3*3; 153是首先花数

for(int n = 100; n <= 999; n++){
  int num = n;
int sum = 0;
do{
  int last = num % 10;
sum += last * last * last;// 3次方和
num /= 10;
}
while(num != 0);
if(sum == n){
  System.out.println(n + "是水仙花数");
}
}

猜数字游戏

数据分析的前提是业务规则

数据分析: num 是被猜测数字  answer 是用户猜的答案  count 猜测的次数

计算方法(计算过程):

1) 随机生成 num 范围 1~100  (如果要生成100-200之间的数可以这样写:nextInt(100)+100

2) 提示用户猜测数据

3) 得到猜测答案 answer

4) 比较用户answer 和 num  4.1 计分 count++  4.2 如果相等就结束 游戏  4.3 提示大/小

5) 返回 (2)

int num;
int answer;
int count = 0;
Scanner in = new Scanner(System.in);
Random random = new Random();
num = random.nextInt(100) + 1;
System.out.println("亲,欢迎使用猜数字游戏!(*_^)");
for(;;){
  System.out.print("猜吧:");
answer = in.nextInt();
count++;
if(num == answer){
  System.out.println("(@_@)对了!分" + count);
break;
}
if(answer > num){
  System.out.println("猜大了!次数:" + count);
}
else{
System.out.println("猜小了!次数:" + count);
}
}

java基础(5)--流程控制结构的更多相关文章

  1. Java基础-程序流程控制第二弹(循环结构)

    Java基础-程序流程控制第二弹(循环结构) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 流程控制有三种基本结构:顺序结构,选择结构和循环结构.一个脚本就是顺序结构执行的,选择结 ...

  2. Java基础-程序流程控制第一弹(分支结构/选择结构)

    Java基础-程序流程控制第一弹(分支结构/选择结构) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.if语句 1>.if语句的第一种格式 if(条件表达式){ 语句体: ...

  3. Java 基础 程序流程控制 (上)

    Java程序流程控制 (上) Java程序大体分为三种流程控制结构:顺序结构.分支结构.循环结构 顺序结构 程序由上到下的逐行执行,中间没有任何跳转和判断语句. 示例代码如下: public clas ...

  4. Java基础—控制流程语句(条件语句与循环结构)

    与任何程序设计语言一样,Java使用条件语句和循环结构确定控制流程.Java的控制流程结构与C和C++的控制流程机构一样,只有很少的例外情况.没有goto语句,但break语句可以带标签,可以利用它实 ...

  5. Java 基础 程序流程控制 (下)

    Java 程序流程控制 (下) 此篇单独对循环结构的知识点进行整理: 之前讲到循环结构分为:for循环,while循环,do...while循环三种最基本的循环结构:在JDK1.5以后的版本还提供了f ...

  6. java基础-控制流程语句

    一 前言 周末睡觉好舒服,都不想动了,就想睡睡,晒晒太阳,作者劳碌命还是过来写文章了.基础系列文章已经已经出到控制流程,感觉也挺快的,我很自信全网没都多少系列文章能有我这基础系列写的这么好,易于初学者 ...

  7. java基础3_流程控制语句

    一 条件判断 1. 条件运算符(三元表达式) ,其形式为: type d = a ? b : c; 具体化形式为:int d = 2 < 1 ? 3 : 4; 2. 轻量级的文本编辑器:Ultr ...

  8. Java基础总结--流程控制

    Java流程控制* 顺序结构--最常见的执行情况,语句按照出现的先后次序依次执行.* 判断结构--对条件进行判断,执行相应的语句.有三种常见的形式< if(判断条件){语句;}--为真执行语句, ...

  9. Java基础学习-流程控制语句

    在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.也就是说程序的流程对运行结果有直接的影响.所以,我们必须清楚每条语句的执行流程.而且,很多时候我们要通过控制语句的执行顺序来实现我 ...

随机推荐

  1. html5 canvas 详细使用教程 转

     分类: html5(9)  原文地址:http://www.cnblogs.com/tim-li/archive/2012/08/06/2580252.html 原作很强悍 导航 前言 基本知识 绘 ...

  2. Entity Framework查询生成大量的子查询,如何避免?求救

    最近使用Entity Framework做一个中型的项目,一张表含有千万条数据,并没有使用很复杂的查询,只是程序上使用了DTO进行帅选数据,且使用了分页,效果很不理想.经过跟踪sql,我发现很多简单的 ...

  3. pro-select-limit-if

    drop procedure if exists p9; CREATE PROCEDURE p9 () BEGIN DECLARE a INT; DECLARE b INT; DECLARE c IN ...

  4. php 汉字验证码

    代码: captcha.php <?php //实现简单的验证码 //session_start session_start(); //画布 $image = imagecreatetrueco ...

  5. 创建使用pycharm virtualenv

    创建使用pycharm virtualenv 在python的世界里,真该感谢有PyCharm,pip,virtualenv 这些好东东,为python程序员提供了极大的方便. virtualenv ...

  6. MySQL之表的约束

    一 介绍 约束条件与数据类型的宽度一样,都是可选参数 作用:用于保证数据的完整性和一致性主要分为: PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录 FOREIGN KEY ...

  7. DRF(3) - 序列化组件(GET/PUT/DELETE接口设计)、视图优化组件

    一.序列化组件 基于上篇随笔的表结构,通过序列化组件的ModelSerializer设计如下三个接口: GET 127.0.0.1:8000/books/{id} # 获取一条数据,返回值:{} PU ...

  8. DRF(2) - 解析器,序列化组件使用(GET/POST接口设计)

    一.DRF - 解析器 1.解析器的引出 我们知道,浏览器可以向django服务器发送json格式的数据,此时,django不会帮我们进行解析,只是将发送的原数据保存在request.body中,只有 ...

  9. spring-知识小结之注解为属性赋值

    <1>.本类中的属性赋值 public class UserServiceImpl implements UserService { //按照类别赋值 // @Autowired //按照 ...

  10. golang SQLite3性能测试

    SQLite是个小型的数据库,很简洁,即支持文件也支持内存,比较适合小型的独立项目,在没有网络的时候做一些复杂的关系数据存储和运算. 为了考察性能做10M(1000万)条记录的测试,测试机4CPU.8 ...