流程控制结构

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. 用vector构造自动扩容的二维数组

    #include <iostream> #include <string> #include <vector> using namespace std; int m ...

  2. 【bzoj4518】[Sdoi2016]征途 斜率优化dp

    原文地址:http://www.cnblogs.com/GXZlegend/p/6812435.html 题目描述 Pine开始了从S地到T地的征途. 从S地到T地的路可以划分成n段,相邻两段路的分界 ...

  3. maven 的构建异常 Could not find artifact ... and 'parent.relativePath'

    完整的异常提示: Non-resolvable parent POM: Could not find artifact com.ecp:ecp-main:pom:0.0.1-SNAPSHOT and ...

  4. GetDesktopWindow和GetWindow区别

    GetWindow The GetWindow function retrieves a handle to a window that has the specified relationship ...

  5. 【Python之路】第十四篇--jQuery

    jquery简介 1.jquery是什么       ☛ 参考用法 jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多 javascript高手加入其team. jQuery ...

  6. pro-select-limit-if

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

  7. smart git使用+单人开发一般流程

    单人开发一般流程 clone checkout develop start gitflow start feature 写代码... 选中文件stage(相当于add) commit push fea ...

  8. 洛谷 P2331 [SCOI2005]最大子矩阵

    洛谷 这一题,乍一眼看上去只想到了最暴力的暴力--大概\(n^4\)吧. 仔细看看数据范围,发现\(1 \leq m \leq 2\),这就好办了,分两类讨论. 我先打了\(m=1\)的情况,拿了30 ...

  9. Drawable.Callback

     一.介绍 public abstract void invalidateDrawable (Drawable who) Called when the drawable needs to be re ...

  10. SSH 公钥检查

    SSH 公钥检查是一个重要的安全机制,可以防范中间人劫持等黑客攻击.但是在特定情况下,严格的 SSH 公钥检查会破坏一些依赖 SSH 协议的自动化任务,就需要一种手段能够绕过 SSH 的公钥检查. 首 ...