目录
主要逻辑:
-
顺序结构,先执行a,再执行b的逻辑
-
条件判断结构,如果...则...
-
循环结构,如果...则重复执行...
1. 条件判断语句
1.1 if单分支结构
语法结构
if(布尔表达式){
语句块
}
流程图
举例
/*
* 测试if语句,简单掷骰子
*/
public class Testif01 {
public static void main(String[] args) {
double d = Math.random(); //Math.random()生成[0,1)随机数
int a = 1+(int)(Math.random()*6); //生成[0,6)之间随机整数
System.out.println(a);
if(a<3) {
System.out.println("小");
}
if(a==3) {
System.out.println("中");
}
if(a>3) {
System.out.println("大");
}
}
}
1.2 if-else双分支结构
语法结构
if(布尔表达式){
语句块1
}else{
语句块2
}
流程图
举例
public class Testif02 {
public static void main(String[] args) {
double r = Math.random()*4;
double area = Math.PI*r*r;
double circle = 2*Math.PI*r;
if(area>=circle) {
System.out.println("面积大于等于周长");
}else {
System.out.println("面积小于周长");
}
}
}
1.3 if-else if-else多分枝结构
语法结构
if(布尔表达式1){
语句块1;
}else if(布尔表达式2){
语句块2;
}......
else if(布尔表达式n){
语句块n;
}else{
语句块n+1;
}
流程图
举例
public class Testif03 {
public static void main(String[] args) {
int age = (int)(100*Math.random());
System.out.println("年龄:"+age+",属于");
if(age<15) {
System.out.println("儿童");
}else if(age<30) {
System.out.println("青年");
}else if(age<45) {
System.out.println("中年");
}else {
System.out.println("懒得敲了");
}
}
}
1.4 switch语句
多值情况适合用switch语句
语法结构
switch(表达式){
case 值1:
语句序列1;
[break];
case 值2:
语句序列2;
[break];
...... ...
[default:
默认语句;]
}
流程图
举例
public class Testif04 {
public static void main(String[] args) {
int grade = 1;
if(grade==1) {
System.out.println("一年级");
}else if(grade==2) {
System.out.println("二年级");
}else {
System.out.println("不想敲了");
}
switch(grade) {
case 1:
System.out.println("一年级");
break;
case 2:
System.out.println("二年级");
break;
default:
System.out.println("不想敲了");
break;
}
}
}
2. 循环语句
-
当型:while和for
-
直到型:do-while循环
2.1 while循环
语法结构
while(布尔表达式){
循环体;
}
流程图
举例
public class Testwhile {
public static void main(String[] args) {
int a = 1;
while(a<=3) {
System.out.println("I love U");
a ++;
}
}
}
2.2 do-while循环
基本不用,过过过
2.3 for循环
语法结构
for(初始表达式;布尔表达式;迭代因子){
循环体;
}
本质和while循环一模一样
public class Testfor {
public static void main(String[] args) {
int a = 1;
while(a<=3) {
System.out.println("I love U");
a ++;
}
for(int i=1;i<=3;i++) {
System.out.println("I love U"+i);
}
//打印a-z
char index = 'a';
for(int i=0;i<26;i++){
char index_print = (char)(index+i);
System.out.println(index_print);
}
}
}
2.4 嵌套循环
在循环里面嵌套循环
举例
public class Testloop {
public static void main(String[] args) {
for(int i=0;i<=5;i++) {
for(int j=0;j<5;j++) {
System.out.println(i);
}
}
}
}
打印个9*9乘法表
public class Test99 {
public static void main(String[] args) {
for(int i=1;i<=9;i++) {
for(int j=1;j<=i;j++) {
System.out.print(j+"*"+i+"="+i*j+"\t");
}
System.out.println();
}
}
}
3. break语句和continue语句
break用于强制退出循环,不执行循环中剩余的语句,continue用于跳到下一次循环,不执行循环中剩余的语句。
break简单案例
public class breakandcontinue {
public static void main(String[] args) {
int count = 0; //计数器
while(true) {
count++;
int i =(int)(Math.random()*100);
if(i==88) {
break;
}
}
System.out.println(count);
}
}
continue简单案例
//把100-150之间不能被3整除的数输出,并且每行输出5个
public class breakandcontinue {
public static void main(String[] args) {
int count = 0;
for(int i=0;i<150;i++) {
if(i%3==0) {
continue;
}
System.out.print(i+"、");
count++;
if(count%5==0) {
System.out.println();
}
}
}
}
4. 综合练习-一个年薪计算器
要求
-
通过键盘输入用户的月薪,每年是几个月薪水
-
输出用户年薪
-
输出一行文字:如果年薪超过10万,恭喜你超越90%,如果年薪超过20万,恭喜你超过98%
-
直到键盘输入”exit“,则推出程序(使用break)
-
输入中途,键盘输入"next",则这个用户退出计算不显示"恭喜...",直接算下一个用户年薪
代码
import java.util.*;
public class salaryComputing {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while(true) {
System.out.println("next下一个,exit退出计算");
System.out.println("请输入月薪:");
int monthSalary = scanner.nextInt();
System.out.println("请输入一年多少个月");
int month = scanner.nextInt();
int yearSalary = monthSalary*month;
scanner.nextLine();
System.out.println("请输入命令,exit或next,其他任意字符继续执行");
String command = scanner.nextLine();
if("exit".equals(command)) {
System.out.println("退出程序");
break;
}else if("next".equals(command)) {
System.out.println("重新输入新命令");
}
if(yearSalary>100000&&yearSalary<200000) {
System.out.println("恭喜你超过90%");
}else if(yearSalary>200000) {
System.out.println("恭喜你超过90%");
}
System.out.println("年薪是:"+yearSalary);
}
}
}