Java 顺序流程控制
没有特殊的代码 顺序从上到下 最基本的顺序结构
选择结构
if
需要判断一个东西是否可行才去执行
//if( )括号内的boolean值为true 运行 ......
if(条件boolean值){
......
}
import java.util.Scanner;
public class Conditions {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine(); //用户输入存入 str
//判断是否输出等都Happy 如果相等输出 str 不相等直接跳过
if (str.equals("Happy")){ //String 判断是否相同用 equals 而不是==
System.out.println(str);
}
scanner.close();
}
}
条件嵌套
if(条件){
if(条件){
........
}
}
if - else
只会执行其中一个 不 判断句为true 执行 if 里的 程序 否则执行else 里的程序
import java.util.Scanner;
public class Conditions {
public static void main(String[] args) {
int a =68;
if (a>=60){ //判断
System.out.println("及格");
}
else{
System.out.println("不及格");
}
scanner.close();
}
}
if - else if -else if ....... else
只有一个代码被执行: if 没有执行 会继续判断 else if 直到 else if 全部判断为 false 运行else里的代码。 中间一旦有true 就值运行 里面的代码.
if else 可以无限增多用来增加判断
import java.util.Scanner;
public class Conditions {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int point = scanner.nextInt(); //用户输入存入 point
if (point>=0&&point <100) //如果为true 运行打印A直接跳过其他判断
System.out.println("A");
}
else if(point>=80&&point<90){//如果为true 运行打印B直接跳过其他判断
System.out.println("B");
}
else if(point>=70&&point<80){//如果为true 运行打印C直接跳过其他判断
System.out.println("C");
}
else if(point>=60&&point<70){//如果为true 运行打印D直接跳过其他判断
System.out.println("D");
}
else{
System.out.println("F"); //以上都不满足为F
}
scanner.close();
}
}
switch
switch(expression){
case value: //比较expreesion和value是否相等
...... //相等运行此处代码
break;
case value:
......
break; //break 不写会进行穿透 所有下面代码都会运行
case value:
......
break;
case value:
......
break;
case value:
......
break;
default: //以上case都不满足运行default 也可以不写
......
}
int a = 3;
switch(a){
case 1:
....
break;
case 2:
....
break;
case 3: //这个情况只会运行 case 3
....
break;
case 4:
....
break;
case 5:
....
break;
default:
....
}
JDK 7 之后就可以 比较String了
String 可以比较是因为 直接将对应String 转换成 哈希值来比较 hashCode 通过 class 文件进行反编译就可以发现, String.hashCode 从而获得 int类型的数字 来进行数字比较
循环
while
while(boolean){ //Ture 就一直运行
....
}
简单例子 输出1 - 50
public static void main(String[] args) {
int i = 0;
while(i<50){
System.out.println(i);
i++; //用来停止循环
}
}
从1 加到1000
public static void main(String[] args) {
int i = 0;
int sum =0;
while(i<1000){
sum = sum + i; // 不断的sum自己和i的值
i++;
}
System.out.println(i);
}
do-while
do while 一定会执行一次 先执行再判断
public static void main(String[] args) {
int i = 0;
int sum =0;
do{
sum = sum + i; // 不断的sum自己和i的值
i++;
}
while(i<1000)
System.out.println(i);
}
for
最有效的循环结构
100.for 再idea 中会自动生成100 次的循环
for的格式
for(初始化;布尔值;更新迭代){
....
}
从1 加到1000
public static void main(String[] args) {
int sum =0;
for(int i = 0; i < 1000; i++){ //一共运行1000次
sum = sum+i;
}
System.out.println(i);
}
for(;;;){ //死循环
}
//通过for的嵌套打印99 乘法表
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j < i; j++) {
System.out.print(i+ "*" +j+ "="+(i*j));
}
System.out.println();
}
}
//增强for循环 用于遍历数组
int[] number = {10,12,13,14,15};
for(int x :number){ //没一次循环number的赋值给x
System.out.println(x); //直接遍历所有元素
}
break
直接终止循环
在循环体里 可以强行终止整个循环-----》 跳出循环
continue
跳过continue后的循环体 -----》直接进入下一次循环
goto
已经不用了。 现在用来标记
outer:来标记用
continue outer:来到达标记处(outer处)