java基础语法2

eclipse安装

官方首页

https://www.eclipse.org/downloads/

安装包下载

https://www.eclipse.org/downloads/packages

版本

在这里插入图片描述
在这里插入图片描述

语言包

在这里插入图片描述

安装运行

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

窗口显示

在这里插入图片描述
在这里插入图片描述

主要设置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

键盘录入

概述

我们目前在写程序的时候,数据值都是固定的,但是实际开发中,数据值肯定是变化的,所以我们需要把数据改进为键盘录入的,以提高程序的灵活性.

实现操作

1.导包
import java.util.Scanner;

2.创建对象
Scanner sc = new
Scanner(System.in);

3.接受数据
int x = sc.nextInt();

图片

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

思考:为什么点击enter后,出现两个一摸一样的.
在这里插入图片描述
练习
在这里插入图片描述

练习题

1.键盘录入两个int类型数据,并对这两个数据求和,输出其结果.

package java01;

import java.util.Scanner;

public class Test01 {

     public static void main(String[] args) {

 	 Scanner sc = new Scanner(System.in);

	 int input1 = sc.nextInt();

	 int input2 = sc.nextInt();

 	 int sum = input1 + input2;

	 System.out.println(sum);
	 }
}

2.键盘录入两个long类型数据,获取这两个数据中的最大值,输出其结果。

Scanner sc = new Scanner(System.in);

	long input1 = sc.nextLong();

	long input2 = sc.nextLong();

	long max = (input1>input2)?input1:input2;

	System.out.println(max);

3.键盘录入三个float类型,获取这三个数据中的最小值,输出其结果。

Scanner sc = new Scanner(System.in);

  float input1 = sc.nextFloat();

  float input2 = sc.nextFloat();

  float input3 = sc.nextFloat();

  float min = (input1<input2)&&(input2<input3)? input1:(input2<input3)?input2:input3;

  System.out.println(min);

4.键盘录入两个byte类型数据,输出这两个值。

Scanner sc = new Scanner(System.in);

 byte input1 = sc.nextByte();

 float input2 = sc.nextByte();

 System.out.println(input1);

 System.out.println(input2);
注意

next()和nextLine()的区别:

next()方法在读取内容时,会过滤掉有效字符前面的无效字符,对输出有效字符之前遇到的空格键,Tab键或Enter键等结束符;next()方法会自动将其过滤掉;只有在读取到有效字符之后,next()方法才将其后的空格键,Tab键或Enter键等视为结束符;所以next()方法不能得到带空格的字符串.

nextLine()方法字面上有扫描一整行的意思,它的结束符只能是Enter键,即nextLine()方法返回的是Enter键之前没有被读取的所有字符,它是可以得到带空格的字符串的.

流程控制结构

概念

在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能.

分类

顺序结构

是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的.总的来说:写在前面的先执行,写在后面的后执行.
在这里插入图片描述

选择结构(分支结构)

选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码.

两种选择结构语句
if语句

第一种
在这里插入图片描述
第二种
在这里插入图片描述
第三种
在这里插入图片描述
注意
1.关系表达式无论简单还是复杂,结果必须是boolean类型
在这里插入图片描述
2.if语句控制的语句体如果是一条语句,大括号可以省略:如果是多条语句,就不能省略.建议永远不要省略.
思考:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
练习题(第二种)
1.键盘录入数据,判断两个数是否相同,并输出结果.

Scanner sc = new Scanner(System.in);

 int input1 = sc.nextInt();

 int input2 = sc.nextInt();

 if (input1 > input2) {  

 System.out.println(input1);

  }   else {

 System.out.println(false);

 }

2.键盘录入数据,输出两个数中较大的值,并输出结果.

Scanner sc = new Scanner(System.in);

int input1 = sc.nextInt();

int input2 = sc.nextInt();

if (input1 > input2) {

System.out.println(input1);

}  else {

 System.out.println(input2);

}

3.键盘录入数据,判断数据是奇数还是偶数.

Scanner sc = new Scanner(System.in);

int input = sc.nextInt();

if (input % 2 == 0) {

System.out.println("输入的数为:偶数");

} else {

System.out.println("输入的数为:奇数");

}

4.比较两个数据是否相等,获取两个数据中较大的值这两个案例,在三元运算符写一遍.

Scanner sc = new Scanner(System.in);

int input1 = sc.nextInt();

int input2 = sc.nextInt();

int input3 = sc.nextInt();

if (input1 > input2) {

if (input1 > input3) {

 	System.out.println("最大数为" + input1);

 }

 } else if (input2 > input3) {

System.out.println("最大数为" + input2);

} else {

System.out.println("最大数为" + input3);

}

练习题(第三种)
1.输入一个数
如果小于0,打印这个数是负数
如果等于0,打印这个数是0
如果大于0,打印这个数是正数

Scanner sc = new Scanner(System.in);

int input = sc.nextInt();

if (input < 0) {

System.out.println(input + "这个数是负数");

} else if (input > 0) {

System.out.println(input + "这个数是正数");

} else {

System.out.println("这个数是0");

}

2.键盘录入x的值,计算出y的并输出.

x和y的关系满足如下:
x>=3 y=2x+1;
-1<=x<1 y=2x;
x<-1 y=2x-1

Scanner sc = new Scanner(System.in);

int x = sc.nextInt();

int y = 0;

if (x >= 3) {

y = 2 * x + 1;

} else if (x >= -1 && x < 1) {

y = 2 * x;

} else if (x < -1) {

y = 2 * x - 1;

}

System.out.println(y);

3.键盘录入月份的值,输出对应的季节.

3-5月为春季
6-8月为夏季
9-11月为秋季
12月-2月为冬季

Scanner sc = new Scanner(System.in);

int month = sc.nextInt();

if (month >= 3 && month <= 5) {

System.out.println(month + "月為春季");

} else if (month >= 6 && month <= 8) {

System.out.println(month + "月為夏季");

} else if (month >= 9 && month <= 11) {

System.out.println(month + "月為秋季");

 } else if (month == 12 || month == 1 || month <= 2) {

System.out.println(month + "月為冬季");

}

4.键盘录入三个数据,然后获取最大值

Scanner sc = new Scanner(System.in);

int input1 = sc.nextInt();

int input2 = sc.nextInt();

int input3 = sc.nextInt();

if (input1 > input2) {

if (input1 > input3) {

System.out.println("最大数为" + input1);

}

} else if (input2 > input3) {

System.out.println("最大数为" + input2);

} else {

System.out.println("最大数为" + input3);

}

预留问题:随便输入任何数据类型的数据,如何保证程序依旧正常运行?

switch语句

注意点:
表达式的取值:byte,short,int,char
JDK7以后可以是String
在这里插入图片描述
练习题
1.根据键盘录入的数值1,2,3,…7输出对应的星期一,星期二,星期三…星期日.

Scanner sc = new Scanner(System.in);

int input = sc.nextInt();

switch (input) {

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;

}

2.switch语句实现键盘录入月份,输出对应的季节

3-5月为春季
6-8月为夏季
9-11月为秋季
12月-2月为冬季

Scanner sc = new Scanner(System.in);

int input = sc.nextInt();

switch (input) {

case 3:

case 4:

case 5:

System.out.println("春");

break;

case 6:

case 7:

case 8:

System.out.println("夏");

break;

case 9:

case 10:

case 11:

System.out.println("秋");

break;

case 12:

case 1:

case 2:

System.out.println("冬");

break;

default:

System.out.println("您输入的有误");

break;

}

3.实现一个计算器
从键盘录入第一个数,运算的符号,第二个数,执行结果

Scanner sc = new Scanner(System.in);



System.out.println("请输入一个数字");

int input1 = sc.nextInt();



System.out.println("请输入运算符+,-,*,/");

String input2 = sc.next();



System.out.println("请输入一个非零数字");

int input3 = sc.nextInt();



switch (input2) {

case "+":

System.out.println(input1 + "+" + input3 + "=" + (input1 + input3));

break;

case "-":

System.out.println(input1 + "-" + input3 + "=" + (input1 - input3));

break;

case "*":

System.out.println(input1 + "*" + input3 + "=" + (input1 * input3));

break;

case "/":

System.out.println(input1 + "/" + input3 + "=" + (input1 / input3 * 1.0));

break;

default:

System.out.println("这个我无法计算");

break;

}

1.next与nextLine的区别

字符串与int的键盘录入的两种处理方式

2.相除得小数,除数为0的两个问题的解决

使用场景

if语句使用场景:
针对结果是boolean类型的判断
针对一个范围的判断
针对几个常量值的判断
switch语句使用场景:
针对几个常量值的判断

循环结构
概述

循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环语句体,当反复执行这个循环语句体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环.

三种循环结构
for循环

在这里插入图片描述
练习题
在这里插入图片描述

for(int i = 0 ;i <10;i++) {

   System.out.println("okk");

}

在这里插入图片描述

for(int i = 1 ;i <=10;i++) {

System.out.println(i);

  }

在这里插入图片描述

for (int i = 10; i > 0; i--) {

System.out.println(i);

}

在这里插入图片描述

int sum = 0;

for (int i = 0; i <= 10; i++) {

sum = sum + i;  

}

System.out.println(sum);

在这里插入图片描述

int sum = 0;

for (int i = 0; i <= 100; i++) {

if(i % 2 == 0 ) {

 	sum = sum + i; 

}

}

System.out.println(sum);

在这里插入图片描述

int sum = 0;

for (int i = 0; i <= 100; i++) {

if(i % 2 == 1 ) {

 	sum = sum + i; 

}

}

System.out.println(sum);

在这里插入图片描述

int count1 =0 ;

int count2 =0 ;

int count3 =0 ;

for (int i = 1; i <= 1000; i++) {

if(i % 3 == 2) {

 count1++;

}else if (i % 5 == 3) {

 	count2++;

}else if (i % 7 == 2) {

 	count3++;

} 

}

System.out.println("1-1000之间对3整除余2有"+count1+"个");

System.out.println("1-1000之间对5整除余3有"+count2+"个");

System.out.println("1-1000之间对7整除余2有"+count3+"个");

注意:
1.判断条件语句的结果是一个boolean类型
2.循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不能省略.建议永远不要省略.
3.一般来说:有左大括号就没有分号,有分号就没有大括号.

while循环

在这里插入图片描述
在这里插入图片描述

int i = 0;

while (i < 10) {

 i++;

 System.out.println("okk");

 int i = 0;

 int sum = 0;

while (i <= 100) {

sum = sum + i;

i++;

 }

 System.out.println(sum);

在这里插入图片描述

Scanner sc = new Scanner(System.in);

int input = sc.nextInt();

int score = 0;

while (input == 1) {



score = score += 10;



input = sc.nextInt();

}

System.out.println(score);

在这里插入图片描述

double height = 0.12;

int foldCount = 0;

while (height < 48) {

height *= 2;

foldCount++;

}

System.out.println(foldCount);
do…while循环

在这里插入图片描述
在这里插入图片描述

int i=0;

do{

System.out.println("okk");

i++;

}while(i<10);

int j=0;

int sum = 0;

do{

j++;

sum+=j;

}while(j<=100);

System.out.println(sum);

在这里插入图片描述

Scanner sc = new Scanner(System.in);

String password = "5201314";//原始密码

String pwd ;

do{

System.out.println("请输入密码");

pwd = sc.nextLine();

if(!password.equals(pwd)){

  System.out.println("密码错误,请重新输入");

}

}while(!password.equals(pwd));

System.out.println("登录成功"); 
for与while的区别

在这里插入图片描述
在这里插入图片描述

int evenCount = 0;

int singelCount = 0;

for (int i = 1; i <= 100; i++) {

	if (i % 2 == 0) {

  	evenCount++;

	} else {

  singelCount++;

}

}

System.out.println("1-100的偶数有"+evenCount);

System.out.println("1-100的奇数有"+singelCount);

int money = 0;

int count = 0;

while(money<1024){

money +=5;

count ++;

}

System.out.println(count);
三种循环语句区别及注意事项

在这里插入图片描述

循环嵌套

练习题

输出一个4行5列的星星(*)图案
在这里插入图片描述

for(int i=0;i<4;i++){

for(int j=0;j<5;j++){

  System.out.print("*");

}

System.out.println();

}

九九乘法表
在这里插入图片描述

for(int i=1;i<10;i++) {

for(int j =1;j<=i;j++) {

  System.out.print(i+"x"+j+"="+i*j+"\t");   

}

System.out.println();

   }
如何循环的

在这里插入图片描述

跳转控制语句

概念:循环过程中达到某一条件的时候就结束循环

分类

break中断
作用:跳出单层循环

使用场景:
1.在选择结构switch语句中
2.在循环语句中
3.离开使用场景的存在没有任何意义

练习题:
小娟的妈妈每天给她3元钱,她都会存起来,但是每当这一天的天数是存钱的第六天或者是六的倍数的话,她都会花去5元钱,请问,经过多少天,小娟才可以存到100元钱.

static int sum_money = 0;

static int day = 0;

public static void main(String[] args){

while(true){

  day++;

  sum_money += 3;

  if(day%6 == 0){

   sum_money -= 5;

  }

  if(sum_money >= 100)

   break;

}

System.out.println("需要"+day+"天小娟才能存到100元钱");

}

continue继续
作用:退出本次循环
使用场景:
1.在循环语句中
2.离开使用场景的存在是没有意义的

return返回
作用:关键字不是为了跳出循环体,更常用的功能是结束一个方法,也就是退出一个方法,跳转到上层调用的方法.
main方法的调用者是jvm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值