只要满足某种条件就处理,不完全是顺序结构,可以跳着执行
if(条件语句){
执行语句:
}
if else 如果满足条件,我将怎么做, 否则我该怎么做
if(条件语句){
执行语句1:
}else{
执行语句2:
}
package com.hw;
/**
* 条件控制语句if else 并不是所有语句都执行 有选择执行
* 可以实现三元运算符的转换
* @author ql
* @version 1.0
*/
public class IfElseTest01 {
public static void main(String[] args) {
int c;
int a=1;
if (a>2){
c=0;
System.out.println("满足条件时执行");
}else {
c=1;
System.out.println("不满足条件时执行");
}
System.out.println("c="+c);
}
}
结果:
不满足条件时执行
c=1
if…else if(多个)… else
if(1){
学习;
}else if(2){
运动;
}else if(3){
看电视剧
}else{
睡觉。
}
package com.hw;
import java.util.Scanner;
/**
* GPA 绩点计算计算
*
* @author ql
* @version 1.0
*/
public class IfElseTest02 {
public static void main(String[] args) {
int grade;
double gpa;
Scanner sc = new Scanner(System.in);
System.out.println("请输入您的成绩(整形输入):");
grade=sc.nextInt();
if (grade>=90){
gpa=4.5;
}else if (grade>=80 && grade<90){
gpa=4.0;
}else if (grade>=70 && grade<80){
gpa=3.5;
}else if (grade>=60 && grade<70){
gpa=3.0;
}else{
gpa=1.0;
}
System.out.println("您的成绩:"+grade+",对应几点"+gpa);
}
}
结果:
请输入您的成绩(整形输入):
90
您的成绩:90,对应几点4.5
switch(条件表达式){
case 值1:
语句1;
break;
case 值2;
语句2;
break;
default;
语句n;
break;
}
package com.hw;
/**
*三元运算符与switch语句的使用
* @author ql
* @version 1.0
*/
public class SwitchTest {
public static void main(String[] args) {
int a=1;
int b=6;
int k;
switch (a>b?0:1){
case 0:
k=a;
break;
case 1:
k=b;
break;
default:
k=1000;
}
System.out.println("k="+k);
}
}
结果:
k=6
for(表达式1; 表达式2; 表达式3){
循环体. //就是表示此部分语句需要执行多次.
}
表达式1:主要是赋一个初始化值, 循环变量的最开始值;
表达式2:用来判断 循环变量的值 是否达到 临界值
表达式3:主要用来实现 循环变量的增加或减少
执行顺序:表达式1 表达式2 循环体 表达式3 表达式2 循环体 表达式3 表达式2 循环体
{}–注意 循环体的花括号 可以省略 但是是针对循环体内只有一条语句的情况。
package com.hw;
/**
* @author ql
* @version 1.0
*/
public class ForTest01 {
public static void main(String[] args) {
// //1.直接这样写 里面不写任何表达式,相当于一个死循环
// for (;;){
// System.out.println("I Lova Java");
// }
//
//(2)输出10以内的数字
for (int i=0;i<10;i++){
System.out.println(i+1);
}
}
}
结果:
1
2
3
4
5
6
7
8
9
10
在for循环体里面又至少写了一层for循环
for( ; ?{
for(; ?{
…
}
}
package com.hw;
/**
* 嵌套for循环
* @author ql
* @version 1.0
*/
public class ForTest2 {
public static void main(String[] args) {
for (int floor=1;floor<=8;floor++){
for (int home=1;home<=5;home++){
System.out.println("第"+floor+"层,第"+home+"户");
}
}
}
}
结果:
第1层,第1户
第1层,第2户
第1层,第3户
第1层,第4户
第1层,第5户
第2层,第1户
第2层,第2户
第2层,第3户
第2层,第4户
第2层,第5户
第3层,第1户
第3层,第2户
第3层,第3户
第3层,第4户
第3层,第5户
第4层,第1户
第4层,第2户
第4层,第3户
第4层,第4户
第4层,第5户
第5层,第1户
第5层,第2户
第5层,第3户
第5层,第4户
第5层,第5户
第6层,第1户
第6层,第2户
第6层,第3户
第6层,第4户
第6层,第5户
第7层,第1户
第7层,第2户
第7层,第3户
第7层,第4户
第7层,第5户
第8层,第1户
第8层,第2户
第8层,第3户
第8层,第4户
第8层,第5户
while(条件表达式){
循环体;
}
注意 :条件表达式 一定要注意终止和结束 出现死循环。
package com.hw;
/**
* @author ql
* @version 1.0
*/
public class WhileTest {
public static void main(String[] args) {
//用while循环实现 1-10的数字输出
int i=1;//---相当于for循环的表达式1
while (i<=10){
System.out.println("i="+i);
i++;//要在循环体内 对循环变量进行变更
//注意 此处不需要i=i++;死循环
}
}
}
结果:
i=1
i=2
i=3
i=4
i=5
i=6
i=7
i=8
i=9
i=10
do{
}while(条件表达式)
区别: do while 是先执行后判断,至少执行一次;
while 循环 是先判断后执行。
package com.hw;
/**
* @author ql
* @version 1.0
*/
public class DoWhile {
public static void main(String[] args) {
//输出1-10的数
int i=100;//循环变量初始化就是100
//while循环先判断后执行
System.out.println("while循环 后判断 后执行");
while (i<=10){
System.out.println("i="+i);
i++;
}
System.out.println("--------------");
//do while先执行后判断
System.out.println("do while循环 先执行 后判断");
do {
System.out.println("i="+i);
i++;
}while (i<=10);
}
}
结果:
while循环 后判断 后执行
--------------
do while循环 先执行 后判断
i=100
应用:循环体+条件语句 switch case
package com.hw;
/**
* break语句的使用
* @author ql
* @version 1.0
*/
public class BreakTest {
public static void main(String[] args) {
//break在单层循环体的使用
for (int i=1;i<=10;i++){
if (i%2==0){
System.out.println("偶数:"+i);
}else {
//直接终止了循环,所以没任何结果输出
break;
}
}
}
}
结果:
没有任何输出
package com.hw;
/**
* break语句的使用
* @author ql
* @version 1.0
*/
public class BreakTest {
public static void main(String[] args) {
//break在嵌套循环里面
for (int j = 1; j < 10; j++) {
for (int i = 1; i <5 ; i++) {
if (i%2==0){
//只终止了当前的循环
break;
}
System.out.println(i);
}
}
}
}
结果:
1
1
1
1
1
1
1
1
1
继续,循环语句里面使用continue,并不是
package com.hw;
/**
* continue语句
* @author ql
* @version 1.0
*/
public class ContinueTest {
public static void main(String[] args) {
//continue在单层循环使用
for (int i = 0; i <=10; i++) {
if (i%2==0){
System.out.println("偶数:"+i);
}else {
continue;
}
}
}
}
结果:
偶数:0
偶数:2
偶数:4
偶数:6
偶数:8
偶数:10
package com.hw;
/**
* continue语句
* @author ql
* @version 1.0
*/
public class ContinueTest {
public static void main(String[] args) {
//continue在单层循环使用
for (int i = 1; i <=10; i++) {
for (int j = 1; j <5 ; j++) {
if (j%2==0){
continue;
}
System.out.println(j);
}
}
}
}
结果://10次1 3
1
3
1
3
1
3
1
3
1
3
1
3
1
3
1
3
1
3
1
3
return的作用主要是
package com.hw;
/**
* return语句使用
* @author ql
* @version 1.0
*/
public class ReturnTest {
public static void main(String[] args) {
//调用
fun1();
}
//return结束运行函数
private static void fun1() {
for (int i = 1; i <10 ; i++) {
if (i%2==0){
System.out.println("i="+i);
return;//结束
}
}
}
}
结果:
i=2
package com.hw;
/**
* return语句使用
* @author ql
* @version 1.0
*/
public class ReturnTest {
public static void main(String[] args) {
String s=func2();
System.out.println(s);
}
//return返回函数的指定数据类型值
private static String func2() {
return "大家周末愉快";
}
}
结果:
大家周末愉快