目录
前置:
* . 从键盘读取数据:
//1.导包 import java.util.Scanner;
import java.util.Scanner;
public class ScannerTest{
public static void main(String[] args){
//2.创建对象 Scanner s = new Scanner(System.in);
Scanner s = new Scanner(System.in);
System.out.println("请输入您的名字");
String name = s.next();
System.out.println("请输入您的年纪");
//3.调用方法 int age = s.nextInt(); (对象名.方法名)
int age = s.nextInt();
System.out.println("请输入您的成绩");
double score = s.nextDouble();
System.out.println("请输入您长的帅吗?(true/false)");
boolean handsome = s.nextBoolean();
System.out.println("名字=" + name);
System.out.println("年纪=" + age);
System.out.println("成绩=" + score);
System.out.println("帅不帅=" + handsome);
}
}
1、分支结构
1.1 if-else结构
格式1:
如果条件表达式的结果为true则执行执行语句
格式2:二选一
如果表达式的结果为true则执行 执行语句1,否则执行 执行语句2.
格式3:多选一
哪个条件表达式的结果为true就执行相应的执行语句.
说明:
- 条件表达式的结果是布尔类型。
- else可以省略
- 如果执行语句只能一句的话,大括号可以省略但不建议
- 多个条件表达式如果为互斥关系,谁上谁下都可以。如果为包含关系,范围小的在上面范围大的在下面。
public class IfTest{
public static void main(String[] args){
//第一种形式
boolean handsome = false;
if(handsome){
System.out.println("伦家愿意的了");
}
//第二种形式
int money = 50;
if(money < 50){
System.out.println("人家不是那种人了");
}else{
System.out.println("千万别把我当人");
}
//第三种形式
int age = 20;
if(age < 18){
System.out.println("少儿不宜");
}else if(age >= 18 && age < 30){
System.out.println("别看片了还是和媳妇逛街去吧");
}else if(age >= 30 && age < 50){
System.out.println("看片多了吧,还是应该多运动");
}else{
System.out.println("年纪太大了,还是不玩了");
}
System.out.println("---------------------------------------------------");
int score = 160;
if(score == 100){
System.out.println(100);
}else if(score > 90 && score < 100){
System.out.println("大于90");
}
System.out.println("代码执行完毕");
}
}
案例实操(1):
import java.util.Scanner;
public class IfTest3{
public static void main(String[] args){
//第一步 从键盘读取成绩
Scanner s = new Scanner(System.in); //创建对象
System.out.println("请输入小鹏鹏的成绩");
int score = s.nextInt(); //从键盘读取成绩
//第二步 使用 if-else if进行判断
/*
if(score == 100){
System.out.println("不错不错给你一辆BMW");
}else if(score > 80 && score <= 99){
System.out.println("还可以给你iphoneX");
}else if(score >= 60 && score <= 80){
System.out.println("呐 给你一个ipad");
}else{
System.out.println("哼 还想要礼物 ,啥都没有");
}
*/
//带校验功能
/*
if(score >= 0 && score <= 100){
if(score == 100){
System.out.println("不错不错给你一辆BMW");
}else if(score > 80){
System.out.println("还可以给你iphoneX");
}else if(score >= 60){
System.out.println("呐 给你一个ipad");
}else{
System.out.println("哼 还想要礼物 ,啥都没有");
}
}
*/
if(score == 100){
System.out.println("不错不错给你一辆BMW");
}else if(score >= 60 && score <= 80){
System.out.println("呐 给你一个ipad");
}else if(score > 80 && score <= 99){
System.out.println("还可以给你iphoneX");
}else{
System.out.println("哼 还想要礼物 ,啥都没有");
}
System.out.println("代码执行完毕");
}
}
案例实操(2):
import java.util.Scanner;
public class IfTest4{
public static void main(String[] args){
//1.从键盘读取数据
Scanner s = new Scanner(System.in);
System.out.println("请输入一个数");
int num1 = s.nextInt();
System.out.println("请输入一个数");
int num2 = s.nextInt();
System.out.println("请输入一个数");
int num3 = s.nextInt();
//比较前两个数的大小。再用第三个数和前两个数进行比较
if(num1 > num2){
//如果num3大于num1说明 num3 > num1 > num2
if(num3 > num1){
System.out.println(num2 + " " + num1 + " " + num3);
}else if(num3 < num2){
//如果num3小于num2 说明 num1 > num2 > num3
System.out.println(num3 + " " + num2 + " " + num1);
}else{
//其它 num1 > num3 > num2
System.out.println(num2 + " " + num3 + " " + num1);
}
}else{ //num1 <= num2
if(num3 > num2){
System.out.println(num1 + " " + num2 + " " + num3);
}else if(num3 < num1){
System.out.println(num3 + " " + num1 + " " + num2);
}else{
System.out.println(num1 + " " + num3 + " " + num2);
}
}
}
}
案例实操(3)
/*
(int)(Math.random() * 90 + 10) : 获取随机数
*/
public class IfTest6{
public static void main(String[] args){
//Math.random() 返回一个随机数,随机数的范围是 [0.0,1.0)
int number = (int)(Math.random() * 90 + 10);
System.out.println(number);
}
}
1.2 switch-case结构
格式:
switch(表达式){
case 常量1:
执行语句1;
break;
case 常量2:
执行语句2;
break;
case 常量3:
执行语句3;
break;
default:
执行语句n;
break;
}
说明:
案例实操(1):
import java.util.Scanner;
public class SwitchTest{
public static void main(String[] args){
int a = 100;
switch(a){
default:
System.out.println("other");
//break;
case 0:
System.out.println("0");
//break;
case 1:
System.out.println("1");
//break;
case 2:
System.out.println("2");
//break;
case 3:
System.out.println("3");
//break;
}
String str = "a";
switch(str){
case "a":
System.out.println("a");
break;
case "b":
System.out.println("b");
break;
}
}
}
案例实操(2):
import java.util.Scanner;
public class SwitchTest3{
public static void main(String[] args){
Scanner s = new Scanner(System.in);
System.out.println("请输入学生成绩");
int score = s.nextInt();
/*
switch(score / 10){
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println("不合格");
break;
case 6:
case 7:
case 8:
case 9:
case 10:
System.out.println("合格");
break;
}
*/
switch(score / 60){
case 0:
System.out.println("不合格");
break;
case 1:
System.out.println("合格");
break;
}
}
}
案例实操(3):
import java.util.Scanner;
public class SwitchTest4{
public static void main(String[] args){
Scanner s = new Scanner(System.in);
System.out.println("请输入年份");
int year = s.nextInt();
System.out.println("请输入月份");
int month = s.nextInt();
System.out.println("请输入日期");
int day = s.nextInt();
int sumDay = 0; //记录总天数
switch(month){
case 3:
//sumDay += 28; //sumDay = sumDay + 28;
if((year % 400 == 0 )|| (year % 4 == 0 && year % 100 != 0)){
sumDay += 29;
}else{
sumDay += 28;
}
case 2:
sumDay += 31;//sumDay = sumDay + 31;
case 1:
sumDay += day;//sumDay = sumDay + day;
}
System.out.println(year + "-" + month + "-" + day + ",是当年的第" + sumDay + "天");
}
}
2、循环结构
循环的四个部分:
2.1 循环: for循环
格式 :
for(初始化条件; 循环条件;迭代条件){
循环体
}
for(1; 2;4){
3
}
循环顺序 : 1- 2 - 3 - 4 - 2 - 3 - 4 ...... 2
public class ForTest{
public static void main(String[] args){
//需求: 打印五遍我爱苍老师
//注意 : 循环条件结果为false时跳出循环体,结果为true时执行循环体
/*
int i = 0;
for(; i < 5; i++){
System.out.println("我爱苍老师");
}
System.out.println(i);
System.out.println("-------------------------------------");
*/
/*
练习 :求一百以内的偶数,输出偶数的个数,求偶数的总和。
练习:求一百以内的奇数,输出奇数的个,求奇数的总和(作业)
*/
int count = 0; //用于统计偶数的个数
int sum = 0; //用于统计偶数的总和
for(int i = 1; i <= 100; i++){
if(i % 2 == 0){
count++;
sum += i;
System.out.println(i);
}
}
System.out.println("count=" + count + " sum=" + sum);
}
}
public class ShuiXianHua{
public static void main(String[] args){
for(int i = 100; i < 1000; i++){
//将各个位上的数进行拆分
int a = i / 100;
int b = i % 100 / 10;
int c = i % 10;
if(i == (a * a * a + b * b * b + c * c * c)){
System.out.println(i);
}
}
}
}
2.2 循环 while
格式:
说明: 1.while和for循环可以相互转换
思考: while循环和for循环的区别是什么?
案例实操:
public class WhileTest{
public static void main(String[] args){
/*
练习 :求一百以内的偶数,输出偶数的个数,求偶数的总和。
练习:求一百以内的奇数,输出奇数的个,求奇数的总和(作业)
*/
//1.初始化条件
int i = 1;
int count = 0; //偶数的个数
int sum = 0; //偶数的总和
while(i <= 100){//2.循环条件 当循环条件的值为false时跳出当前while结构继续向下执行
//3.循环体
if(i % 2 == 0){
count++;
sum += i;
System.out.println(i);
}
//4.迭代条件
i++;
}
System.out.println("count=" + count + " sum=" + sum);
}
}