顺序结构
例子:
//顺序结构
public class SequenceDemo{
public static void main(String[] args){
System.out.println("1");
System.out.println("2");
System.out.println("3");
System.out.println("4");
}
}
运行结果:
选择结构
1. 条件语句 - if...else
单if语句:
if(关系表达式){
语句体
}
例子:
public class IfDemo{
public static void main(String[] args){
System.out.println("今天天气不错,发现一个快乐的地方-----网吧");
//int age = 16;
int age = 19;
if(age >= 18){
System.out.println("进入网吧,开始high!");
System.out.println("玩的不爽,结账走人");
}
System.out.println("回家吃饭");
}
}
运行结果:
标准的if-else语句
if(关系表达式){
语句体
}else{
语句体
}
例子:
public class IfElseDemo{
public static void main(String[] args){
int num = 13;
if(num%2==0){
System.out.println("偶数");
}else{
System.out.println("奇数");
}
}
}
运行结果:
扩展的if-else语句
if(判断条件1){
执行语句1;
}else if(判断条件2){
执行语句2;
}
....
}else if(判断条件n){
执行语句n;
}else{
执行语句n+1;
}
例子:
//x和y关系满足如下:
//如果x >= 3 ,那么y = 2x +1
//如果-1 < x < 3 ,那么 y = 2x;
//如果 x <= -1 ,那么y = 2x -1
public class IfElseExtDemo{
public static void main(String[] args){
//int x = 10;
//int x = 2;
int x = -10;
int y;
if(x >= 3){
y = 2 * x + 1;
}else if(-1<x && x < 3){
y = 2 * x ;
}else{
y = 2 * x - 1 ;
}
System.out.println("结果是"+y);
}
}
运行结果:
例子2:
//题目:给对应的成绩打出评价,
//100-90为优秀,80-90为好,80-70为良,
//大于60为及格,小于60为bujig
public class IfElsePractice{
public static void main(String[] args){
int score = 98;
if(score >= 90 && score <= 100){
System.out.println("优秀");
}else if(score < 90 && score >= 80){
System.out.println("好");
}else if(score < 80 && score >= 70){
System.out.println("良");
}else if(score < 70 && score >= 60) {
System.out.println("及格");
}else if(score <60 && score >=0){
System.out.println("不及格");
}else{ //单独处理边界之外不合理的情况
System.out.println("数据错误");
}
}
}
运行结果:
例子3:
//题目:使用三元运算符和标准if-else分别事现:取俩个数字中的最大值
public class MaxDemo{
public static void main(String[] args){
int a = 10;
int b = 20;
//首先使用三元运算符
//int max = a > b ? a :b;
//使用if语句
int max ;
if(a > b){
max = a;
}else{
max = b;
}
System.out.println("最大值:"+ max );
}
}
运行结果:
2.选择语句-switch
例子:
public class SwitchDemo{
public static void main(String[] args){
int num = 1 ;
switch(num){
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("数据格式不正确");
}
}
}
运行结果:
switch语句使用的注意事项:
1.多个case后面的数值不可以重复
2.switch后面的小括当中只能是下列数据类型
基本数据类型:byte/short/char/int
引用数据类型:String字符串,enum枚举
3.switch语句格式可以很灵活:
前后顺序可以颠倒,而break语句可以省略
"匹配哪一个case就从哪个位置向下执行,知道遇到break或者整体结束为止"
例子:
public class SwitchNoticeDemo{
public static void main(String[] args){
int num = 3;
switch(num){
case 1 :
System.out.println("1");
break;
case 3:
System.out.println("3");
//break;
case 2:
System.out.println("2");
default:
System.out.println("数据之外");
break;
case 4:
System.out.println("4");
}
}
}
运行结果:
循环结构
循环结构的基本组成部分,一般可以分成四个部分:
1.初始化语句:在循环开始最初执行,而且只做唯一一次
2.条件判断:如果成立,则循环继续,如果不成立,则退出循环
3.循环体:重复要做的事情,若干行语句
4.步进语句:每次循环之后都要进行的扫尾工作,每次循环结束之后都要进行一次
1.for循环语句
for循环语句格式:
for(初始化表达式;布尔表达式;步进表达式){
循环体
}
例子:
public class ForDemo{
public static void main(String[] args){
for(int i = 0;i <100;i++){
System.out.println("Hello,For!");
}
System.out.println("程序停止");
}
}
运行结果:
2.while循环语句
while循环有一个标准格式,还要一个拓展格式
标准格式:
while(条件判断){
循环体
}
拓展格式:
初始化语句;
while(条件判断){
循环体;
步进语句;
}
例子:
public class WhileDemo{
public static void main(String[] args){
for(int i = 0;i < 10 ; i++ ){
System.out.println(i);
}
System.out.println("================");
int i = 0;//1.初始化语句
while(i < 10 ){ //2.条件判断
System.out.println(i);//3.循环体
i ++;//步进语句
}
}
}
运行结果:
3.do-while循环
do-while循环的标准格式:
do{
循环体
}while(条件判断);
拓展格式:
初始化语句;
do{
循环体
步进语句
}while(循环判断);
注意事项:
1.第一次执行是无条件执行的,至少执行一次
例子:
public class DoWhileDemo{
public static void main(String[] args){
for(int i = 1; i <= 10; i++){
System.out.println(i);
}
System.out.println("==========");
int i = 1;//1.初始化语句
do{
System.out.println(i);//3.循环体
i++;//4.步进语句
}while(i <= 10);//2.判断条件
}
}
运行结果:
4.三种循环的区别
1.如果条件判断从来没有满足过,那么for循环和while循环将会执行0次,
但是do-while循环将会执行1次
2.for循环的变量再小括当中定义,只有再循环内部才可以使用。
while循环和do-while循环初始化语句本来就在外面,
所以出来循环之后还可以继续使用
例子:
public class LoopDifferenceDemo{
public static void main(String[] args){
for(int i = 1;i<0;i++){
System.out.println("Hello");
}
//System.out.println(i);//这行代码是错误写法,因为变量i定义再for循环括内,只有for循
//环自己使用
System.out.println("=============");
int i = 1;
do{
System.out.println("World");
i++;
}while(i < 0);
//现在已经超出了do-while循环范围,我们仍然可以使用
System.out.println(i);//2
}
}
运行结果:
5.条件控制语句
1.break
break关键字的用法有常见的两种:
1.可以用在switch语句当中,一旦执行,整个switch语句立结束
2.还可以用在循环语句当中,一旦执行,整个循环语句立结束,打断循环
关于循环的选择,有一个小建议:
凡是次数确定的场景多用for循环,否则多用while循环
例子:
public class BreakDemo{
public static void main(String[] args){
for(int i = 1;i <= 10 ; i++){
//希望从第四次开始,后续全部都不要了,就打断循环
if(i == 4){//如果当前是第四次
break;//那么就打断整个循环
}
System.out.println("Hello"+i);
}
}
}
运行结果:
2.continue
continue关键字:
一旦执行,立逃过当前次循环剩余内容,马上开始下一次循环
例子:
public class ContinueDemo{
public static void main(String[] args){
for(int i = 1;i <=10 ; i++){
if(i == 4){//如果当前是第四层
continue;//那么跳过当前次循环,马上开始下一次循环
}
System.out.println(i+"层到了");
}
}
}
运行结果:
6.死循环
永远停不下来的循环,叫做死循环
死循环的标准格式:
while(true){
循环体
}
例子:
public class DeadLoopDemo{
public static void main(String[] args){
/*
for(int i = 1;i <= 10 ; ){
System.out.println("Hello");
}
*/
while(true){
System.out.println("I LOVE JAVA");
}//CTL+C强制停止
//System.out.println("Hello");//错误写法-
}
}
运行结果:
7.嵌套循环
例子:
public class LoopHourAndMinuteDemo{
public static void main(String[] args){
for(int hour = 0 ; hour < 24 ; hour++){
for(int minute = 0; minute < 60 ; minute ++){
System.out.println(hour + "点" + minute+"分");
}
}
}
}
运行结果: