Java 流程控制:
顺序
分支
循环
分支:
if(布尔表达式){
语句块
}else{
语句块
}
尽量使用肯定条件,减少else,减少嵌套
package day06;
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
Scanner con = new Scanner(System.in);
System.out.print("输入一个整数:");
int n = con.nextInt();
con.close();
if(n > 0){
System.out.println("是正整数");
}else{
System.out.println("不是正整数");
}
}
}package day06;
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
Scanner con = new Scanner(System.in);
System.out.print("输入一个整数:");
int n = con.nextInt();
con.close();
if(n > 0)//if语句块中只有一行代码的时候,可以省略花括号
System.out.println("是正整数");
else
System.out.println("不是正整数");
}
}package day06;
import java.util.Scanner;
public class Demon02 {
public static void main(String[] args) {
Scanner con = new Scanner(System.in);
System.out.print("输入一个整数:");
int n = con.nextInt();
con.close();
if(n > 0)
System.out.println("正整数");
else if(n == 0)
System.out.println("是0");
else
System.out.println("是负整数");
}
} switch - case 结构
性能十分优秀
但是 只能 根据整数参数进行分支操作
if 多路 嵌套 条件灵活 适应性广,性能相对于 switch 差
如果 是根据整数多路分支 用switch
其他的可以使用 if
switch(command){
case 1:
//语句
break;
case 2:
//语句
break;
case 3:
// 3和4用同一个语句
case 4:
//语句
break;
}
package day06;
import java.util.Scanner;
public class Demo03 {
public static void main(String[] args) {
Scanner con = new Scanner(System.in);
System.out.print("输入成绩:");
int score = con.nextInt();
con.close();
if(score >= 0){
String level;
switch(score/10){
case 10:
level = "学霸";
break;
case 9:
level = "学神";
break;
case 8:
level = "学民";
break;
case 7:
level = "学痞";
break;
case 6:
level = "学渣";
break;
default:
level = "渣渣";
}
System.out.println("你好"+level);
}else
System.out.println("渣渣有负的吗?");
}
} 循环结构
经典的for常用于计次循环
for 循环可以替代其他他的循环结构
for(表达式1;表达式2;表达式3){
循环体
}
for(初始化表达式;循环条件(boolean);递增表达式){
循环体
}
for(;;){} ==》死循环
在不知道用什么循环的时候就用死循环
for(;循环条件;)当循环
控制使用
continue
用在循环中,结束本次循环而开始下一次循环.
break
用于退出当前语句块,退出循环
在嵌套的循环结构中,break 用于退出所在循环体,如果要退出外层循环体,需要使用标号的方式
for(){
for(){
break;
}
}
outer:for(){
for(){
break outer;
}
}
package day06;
/**
* 99乘法表
*/
public class Demo04 {
public static void main(String[] args) {
for(int x = 1;x < 10;x++){
if(x == 2)
continue;
for(int y = 1; y <= x;y++){
if(y == 6) break;
if(x*y >= 10)
System.out.print(y+"*"+x+"="+x * y+‘ ‘);
else
System.out.print(y+"*"+x+"="+"0"+x * y+‘ ‘);
}
System.out.println();
}
}
}package day06;
/**
*用死循环,反转字数
*/
public class Demo05 {
public static void main(String[] args) {
int num = 1234567890;
int sum = 0;
int last;
for (;;) {
last = num % 10;
sum = sum * 10 + last;
num /= 10;
if (num == 0)
break;
}
System.out.println(sum);
}
}package day06;
import java.util.Scanner;
public class Demo06 {
public static void main(String[] args) {
Scanner con = new Scanner(System.in);
int score = -1;
for (; score < 0 || score > 100;) {
System.out.print("输入分数:");
score = con.nextInt();
}
System.out.print(score);
}
}while 循环
先判断 后循环
while(循环条件(布尔)){
循环体
}
package day06;
import java.util.Scanner;
public class Demo07 {
public static void main(String[] args) {
Scanner con = new Scanner(System.in);
System.out.print("请输入一个三位数:");
int num = con.nextInt();
int nu = num;
int sum = 0;
while (num != 0) {
int last = num % 10;
sum += last * last * last;
num /= 10;
}
if (sum == nu)
System.out.println(nu + "是水仙花数");
else
System.out.println(nu + "不是水仙花数");
}
}
package day06;
import java.util.Scanner;
public class Demo07 {
public static void main(String[] args) {
// Scanner con = new Scanner(System.in);
// System.out.print("请输入一个三位数:");
// int num = con.nextInt();
for (int num = 100; num < 1000; num++) {
int nu = num;
int sum = 0;
while (nu != 0) {
int last = nu % 10;
sum += last * last * last;
nu /= 10;
}
if (sum == num)
System.out.println(num + "是水仙花数");
else
System.out.println(num + "不是水仙花数");
}
}
}
do while 循环
先循环在检查,无论boolean表达式的值是true 还是 false 最少会进行一次循环
do{
循环体
}while(循环条件)
对比一下: for ;while ;do while
for 常用于 经典使用方式 与固定次数有关循环处理
for 可以替代其他的两种循环
for(;循环条件;){} 替代 while(循环条件){}
死循环:for(;;){} 替代while(true){}
for{;;}{if(循环条件) break;} 替代 do while(循环条件)
while 循环用于在循环体开始时候判断循环条件
do while 循环用于在循环体结束时候判断循环条件
不知道用什么循环就要for 的死循环,在适当的条件时候使用break
原文:http://lmdtx.blog.51cto.com/6942028/1698843