Java流程控制包括顺序控制、条件控制和循环控制。
顺序控制,就是从头到尾依次执行每条语句操作。
条件控制,基于条件选择执行语句,比方说,如果条件成立,则执行操作A,或者如果条件成立,则执行操作A,反之则执行操作B。if else和switch case
循环控制,又称为回路控制,根据循环初始条件和终结要求,执行循环体内的操作。while和 do...while和 for 和 foreach
条件控制
public class TestIf {
public static void main(String[] args) {
int age = 19;
if(age>18){
System.out.println("你已经成年了");
}else{
System.out.println("你还未成年哦");
}
}
}
public class TestIf {
public static void main(String[] args) {
int age = 19;
if(age>100){
System.out.println("哇 长者");
}else if(age>=18 && age <=100){
System.out.println("你已经成年了");
}else if (age>0 && age <18){
System.out.println("哎呦 你还未成年哦");
}else{
System.out.println("哇咔咔 你还没出生呢");
}
}
}
import java.util.Scanner;
/**
* @author 爱丽丝、如歌
* @description键盘输入三个数字 输出从大到小的排序
* @create 2018-01-18 下午 8:51
**/
public class TestIf {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int num1 = scanner.nextInt();
int num2 = scanner.nextInt();
int num3 = scanner.nextInt();
int a = num1>num2&&num1>num3?num1:0;
int b = num2>num1&&num2>num3?num2:0;
int c = num3>num1&&num3>num2?num3:0;
System.out.println(a!=0?a:"");
System.out.println(b!=0?b:"");
System.out.println(c!=0?c:"");
if(a>0){
System.out.println(num2>num3?num2:num3);
System.out.println(num2<num3?num2:num3);
}else if(b>0){
System.out.println(num1>num3?num1:num3);
System.out.println(num1<num3?num1:num3);
}else{
System.out.println(num1>num2?num1:num2);
System.out.println(num1<num2?num1:num2);
}
}
}
/**
* @author 爱丽丝、如歌
* @description switch case 的测试
* @create 2018-01-18 下午 10:45
**/
public class TestSwitch {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int i = scanner.nextInt();
switch (i){
case 1:System.out.println("星期一");break;
case 2:System.out.println("星期二");break;
case 3:System.out.println("星期三");break;
case 4:System.out.println("星期四");break;
case 5:System.out.println("星期五");break;
case 6:System.out.println("星期六");break;
case 7:System.out.println("星期日");break;
default:System.out.println("您输入的日期不存在");break;
}
}
}
循环控制
/**
* @author 爱丽丝、如歌
* @description for循环测试
* @create 2018-01-18 下午 11:17
**/
public class TestFor {
public static void main(String[] args) {
/**
* 1 初始化条件 int i=0
* 2 循环条件 i<100
* 3 迭代条件 i++
* 4 循环体 System.out.println(i);
*/
for (int i = 0; i <100 ; i++) {
System.out.println(i);
}
}
}
public class Test水仙花数 {
public static void main(String[] args) {
/**
* 水仙花数是指:一个三位数,其各位数字立方和等于该数本身。例如:370=33+73+00.这就说明370是一个水仙花数。
所以要判断一个三位数是不是水仙花数,得先取得这个三位数的的个位,十位和百位。
*/
for (int i = 100; i <1000 ; i++) {
int b = i/100;
int s = i%100/10;
int g = i%10;
System.out.print(i==b*b*b+s*s*s+g*g*g?i:" ");
}
}
}
public class TestWhile {
public static void main(String[] args) {
int a = 0;
while (a<100){
System.out.println(a);
a++;
}
}
}
while:先判断条件是否成立,然后执行下面的语句。循环体执行0次或多次
do...while:先执行循环体,然后判断条件是否成立,如果不成立,则跳出。循环体至少执行一次
for(定义循环变量并初始化;循环条件;改变循环变量的值):for循环我觉得是最常用的,因为用起来比较方便,在用的时候定义变量,然后给出循环条件,再改变循环变量的值。
for和while的总结
do...while:先执行循环体,然后判断条件是否成立,如果不成立,则跳出。循环体至少执行一次
for(定义循环变量并初始化;循环条件;改变循环变量的值):for循环我觉得是最常用的,因为用起来比较方便,在用的时候定义变量,然后给出循环条件,再改变循环变量的值。
两者可以进行相互转化
for:知道循环次数
while:只知道循环结束
循环嵌套打印9*9乘法表
public class TestFor {
public static void main(String[] args) {
for (int i=1;i<10;i++){
for (int j = 1; j <10 ; j++) {
System.out.print(i+"*"+j+"="+i*j+" ");
}
System.out.println();
}
}
}
break 和 continue 和return
public static void main(String[] args) {
for (int i=1;i<10;i++){
for (int j = 1; j <10 ; j++) {
System.out.print(i+"*"+j+"="+i*j+" ");
if(i==3){
/**
* break用于完全结束一个循环,跳出循环体执行循环后面的语句。
*/
//break;
/**
* continue是跳过当次循环中剩下的语句,执行下一次循环。
*/
/*System.out.print("===");
continue;*/
/**
* 完全结束
*/
return;
}
}
System.out.println();
}
}
/**
* 3000米长的绳子 每天减少一半 需要多少天他的长度才能大于5米
* @param args
*/
public static void main(String[] args) {
int i = 6000;
int a = i/2;
for (int j = 1; j <i ; j++) {
System.out.println(a>5?a:"");
a=a/2;
}
}
}
/**
* 3000米长的绳子 每天减少一半 需要多少天他的长度才能大于5米
* @param args
*/
public static void main(String[] args) {
int day = 1;
for (int j = 3000; j>5 ; day++) {
j=j/2;
}
System.out.println(day);
}
}