顺序结构
代码从主函数开始逐行向下运行
是一种宏观的代码运行结构
选择结构
程序员在写代码时碰到了多中可能发生的情况时,会使用选择结构来完成程序。
选择结构主要有两种
if 语句和switch语句
if 和 switch 的区别:
if 既可以对一个单一的值进行判断,也可以对一个区间的值进行判断;switch 只能判断单一的值
if语句
双分支
基本格式:
if(条件表达式){
当条件为true时执行的代码;
}else{
当条件为false时执行的代码;
}
单分支
单行格式:
if(条件表达式){
当条件为true时执行的代码;
}
多分支
嵌套if-else形式:
if(条件表达式1){
条件1为true时执行的代码;
if(条件表达式2){
条件2为true时执行的代码;
………………
………………
}else 条件2为false时执行的代码;
}else 条件1为false时执行的代码;
if-else-if形式
if(条件表达式1){
条件1为true是执行的代码;
}else if(条件表达式2){
条件2为真时执行的代码;
}else if(条件表达式3){
条件3为真时执行的代码;
}………………
………………
switch语句
形如下图是switch语句的工作原理
一般用于多选情况下
switch所要求的变量的数据类型:byte short int char String 枚举
switch(变量){
case 值1:
执行语句1;
break;
case 值2:
执行语句2;
break;
case 值3:
执行语句3;
break;
........
deafult:
执行语句n;
break;
}
循环结构
循环结构是程序员在编程过程中遇到重复
性问题时会使用循环结构来解决问题
循环结构主要包括两方面内容,for循环和while循环
循环的四要素:
1.循环初始化
指的就是循环从什么时候开始执行
2.循环继续条件
什么情况循环继续执行/反过来说,循环何时结束
3.循环体
就是我们需要被多次循环执行的代码块
4.循环的周期,步长,间距
当前循环和下一次循环之间的变更
for循环
for (初始操作;循环鏈续条件;每次迭代后的操作){
循环体;
}
while循环
while 循环的语法如下 : while( 循环继缞条件) {
循环体;
}
do-while
do-while是先将do后面的循环体执行之后在进入循环
do{
循环体;
} while ( 循环继续条件)
循环的选用
for 循环是已知次数的循环,所以当次数已知时使用for循环
while循环是已知结束条件的循环,所以当已知循环结束条件时使用while循环
习题
1、
/*
数据:a,b,c,d,e,f
操作:提示用户输入、判断方程组是否有解、计算方程组的解、输出
步骤:1、提示用户输入a,b,c,d,e,f
2、判断方程是否有解,按格式输出
*/
import java.util.Scanner;
class ProblemTwo{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
//1、提示用户输入a,b,c,d,e,f
System.out.print("Enter a,b,c,d,e,f: ");
double a=scanner.nextDouble();
double b=scanner.nextDouble();
double c=scanner.nextDouble();
double d=scanner.nextDouble();
double e=scanner.nextDouble();
double f=scanner.nextDouble();
//2、判断方程是否有解,按格式输出
double m= a * d - b * c;
if(m==0)
System.out.println("The equation has no soluntion");
else
System.out.println("x is "+((e*d-b*f)/m)+" and y is "+((a*f-e*c)/m));
}
}
运行结果
Enter a,b,c,d,e,f: 9.0 4.0 3.0 -5.0 -6.0 -21.0
x is -2.0 and y is 3.0
Enter a,b,c,d,e,f: 1.0 2.0 2.0 4.0 4.0 5.0
The equation has no soluntion
2、
/*
数据:用户输入的两位数number1、彩票的两位数number2、
用户输入两位数的个位num1和十位num2、彩票的个位nu1、nu2
指令:获得num1、num2、nu1、nu2 判断两个数是否完全相同 判断所有数字是否匹配
判断一个数字与彩票上的一个数字匹配 输出
步骤:1、提示用户输入一个两位数number1
2、使计算机产生一个10~99之间的随机数number2
3、分离number1和number2的十位和个位
4、判断数字是否完全相同、是否匹配、是否有一个数字匹配并且输出
注意:需要使用到随机数产生随机数的方法
1、Math.random()产生[0,1)之间的一个dobule型数
2、Random类
*/
import java.util.Scanner;
class ProblemFive{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
//1、提示用户输入一个两位数number1
System.out.print("请输入一个两位数:");
int number1=scanner.nextInt();
//2、使计算机产生一个10~99之间的随机数number2
int number2=(int)(Math.random()*90+10);
//3、分离number1和number2的十位和个位
int num1=number1%10;
int num2=number1/10;
int nu1=number2%10;
int nu2=number2/10;
//4、判断数字是否完全相同、是否匹配、是否有一个数字匹配并且输出
if(number1==number2){
System.out.println("恭喜您获得10000美元奖金!");
}else if(num1==nu2&&num2==nu1){
System.out.println("恭喜您获得3000美元奖金!");
}else if(num1==nu1||num1==nu2||num2==nu1||num2==nu2){
System.out.println("恭喜您获得1000美元奖金!");
}