流程控制与输入
在Java语言中程序执行的顺序往往是自上而下运行的,但这样往往不够。我们有时候需要加入一些高级的程序控制语句来使程序运行变得更有意思
代码示例:
import java.util.Scanner;
public class test{
public static void main(String[] args){
Scanner sc= new Scanner(System.in);
System.out.print("你会好好学习的吗?(0/1)");
int i = sc.nextInt();
//System.out.println(i);
if(i==0)
{
System.out.println("少年好功夫,拿大厂的offer");
} else if (i ==1)
{
System.out.println("不好好学习就找不到好工作");
System.out.println("你的良心不痛吗?还是好好学习吧");
}
}
}
if语句
if
语句也被称为条件语句,通过对条件进行判断从而决定执行那种语句。
基础语法格式:
if(表达式){
语句
}
if
单分支语句
if
单分支使用示例:
public class test{
public static void main(String[] args){
int a = 3;
if(a < 5 )
{
System.out.println(a);
}
}
}
需要注意的是:如果布尔表达式为true,则执行if中的语句否则不执行
if....else..
双分支语句
if...else....
通常表现的形式为:如果满足某一种条件就执行相应的的语句,不满足则执行另一条语句
if(表达式){
语句
}else{
语句
}
当布尔表达式结果为true
,则执行if
中的语句,否则执行else
中的语句。
示例:考试成绩60分以上为合格,60分一下为不及格
public class test{
public static void main(String[] args){
int source = 65;
if(source > 60)
{
System.out.println("合格");
}
else{
System.out.println("不合格");
}
}
}
if...else if..else
多分支语句
多分支语句用于对多个条件进行判断,进而实现不同的处理结果。
语法格式为:
if(表达式1){
语句1
}else if(表达式2){
语句2
}else if(表达式3){
语句3
}else{
语句
}
当表达式1成立时,执行语句1;否则表达式2成立时,执行语句2;否则表达式3成立时执行语句3;否则else。
示例:判断一个数字是整数、负数还是0
public class test{
public static void main(String[] args){
int num = -10;
if(num > 0){
System.out.println("这是一个正数");
} else if (num < 0 ) {
System.out.println("这是一个负数");
}else{
System.out.println("这是一个0数");
}
}
}
switch多分支语句
基本语法:
switch(expression){
case value :
//语句
break; //可选
case value :
//语句
break; //可选
//你可以有任意数量的case语句
default : //可选
//语句
}
switch语句会先计算表达式的值,然后再与case依次进行比较,一旦有响应的匹配就执行该项下的语句,直到遇到break时结束,当表达式的值没有与所列项匹配时,执行default。
示例:根据day的值输出星期一到星期日
int day = 1;
switch(day) {
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;
}
注意:switch括号中的表达式只能是一下类型
- 基本类型: byte char short int 不能是long类型
- 引用类型: String常量串 枚举类型
while循环语句
语法格式为:
while(循环条件){
循环语句
}
while的循环条件必须是布尔值,当表达式的值为true,则执行语句序列;当表达式的值为false时,则结束循环。
代码示例:计算1~100的和
public class test{
public static void main(String[] args){
int i = 1;
int Sum = 0;
while(i<=100){
Sum =Sum+i;
i++;
}
System.out.println(Sum);
}
} //程序的结果为5050
注意事项:不要在while表达式后加;
,否则会导致无法正常循环;同时while后面加上{}
,否则只能执行一条语句。
do…while 循环语句
基本语法格式是:
do{
循环语句;
}while(循环条件);
while语句先执行循环语句,再判定循环条件,循环条件成立则继续执行,否则循环结束。
代码示例:打印5的阶乘
public class test{
public static void main(String[] args){
int i = 1;
int num = 1;
do{
num = num*i;
i++;
}while (i<=5);
System.out.println(num);
}
}
for 循环语句
基本语法:
for(表达式1;表达式2;表达式3)
{
语句
}
- 表达式1: 初始化循环变量体,在循环最开始的时候执行一次
- 表达式2: 循环变量体,其值的类型是布尔类型。用于判断是否继续执行循环体,满则循环继续,否则循环结束。
- 表达式3:循环变量的更新方式
代码示例1:打印5的阶乘
public class test{
public class test{
public static void main(String[] args){
int result = 1;
for(int i = 1; i <= 5; i++) {
result= result * i;
}
System.out.println(result);
}
}
代码示例2:打印出1~100能被3和5整除的数字
public class test{
public static void main(String[] args){
for(int num = 0; num <= 100; num++){
if( num%15==0){
System.out.println(num);
}
}
}
}
Scanner 键盘录入
1.概述:是java定义好的一个类
2.作用:将数据通过键盘录入的形式放到代码中参与运行
3.位置:java.util
4.使用:
a.导包:通过导包找到要使用的类 -> 导包位置:类上
import java.util.Scanner -> 导入的是哪个包下的哪个类
b.创建对象
Scanner 变量名 = new Scanner(System.in);
c.调用方法,实现键盘录入
变量名.nextInt() 输入整数int型的
变量名.next() 输入字符串 String型的
public class a_scanner {
public static void main(String[] args) {
/*Scanner data = new Scanner(System.in);
int num1 = data.nextInt();
System.out.println("num1的值为"+num1);
System.out.println("-----------------------");
Scanner data1 = new Scanner(System.in);
String num2 = data1.next();
System.out.println("num2="+num2);
System.out.println("-----------------------");*/
/**
* 输入三个老人的年龄,用三元符号判断他们中谁的年龄最大
* */
System.out.println("分别输入三个老人的年龄");
Scanner data = new Scanner(System.in);
int age1 = data.nextInt();
int age2 = data.nextInt();
int age3 = data.nextInt();
int temp =age1>age2?age1:age2;
int max=temp>age3?temp:age3;
System.out.println("老头人中年龄最大的是:"+ max);
}
}
/**
变量名.next():录入字符串 -> 遇到空格和回车就结束录入了
变量名.nextLine():录入字符串 -> 遇到回车就结束录入了
*/
Random 随机数
1.概述:java自带的一个类
2.作用:可以在指定的范围内随机一个整数
3.位置:java.util
4.使用:
a.导包:import java.util.Random
b.创建对象:
Random 变量名 = new Random()
c.调用方法,生成随机数:
变量名.nextInt() -> 在int的取值范围内随机一个整数
public class b_random {
public static void main(String[] args) {
Random number = new Random();
int data1 = number.nextInt();
System.out.println(data1);
//在1—100范围内生成随机数
Random number01 = new Random();
int data2 = number01.nextInt(100)+1;
System.out.println("data2 = "+data2);
Random number02 = new Random();
int data03 = number02.nextInt(10,60)+1; //origin 起源
System.out.println("data03 = "+data03);
//在100-999之间随机一个数
int data3 = number01.nextInt(900)+100;
System.out.println("data2="+data3);
}
}