第二章 变量、数据类型、运算符
4,Java类型转换
(1)A=B 要求AB必须要类型兼容
数字:char<int<double
非数字:(char) String
(2)A=B 类型转换
a,自动类型转换:小-->大
double=int double d=4; double d=10/3.0;
int=char int i='a';
double=char double d='@';
b,强制类型转换:大-->小
int=(int)double int i=(int)2.3; int i=10/3+(int)2.0; int i=(int)(10/3+2.0);
float f=(float)3.4;
结果(double)=char+int+float+double
(3)数字--->String
String=数字+""
(4)String-->数字
"6"---->6
int=Integer.parseInt(String);
float=Float.parseFloat(String);
double=Double.parseDouble(String);
-------------------------------------------------------------
char c=1; ?
编程题:交换两个变量的值
int a=2;
int b=5;
<1>
import java.util.Scanner;
public class Choose{
public static void main(String[]args){
Scanner scanner=new Scanner(System.in);
System.out.print("请输入a:");
int a=Integer.parseInt(scanner.next());
Scanner scanner1=new Scanner(System.in);
System.out.print("请输入b:");
int b=Integer.parseInt(scanner1.next());
int c;
c=a;
a=b;
b=c;
System.out.println("a="+a+"\nb="+b);
}
}
<2>
import java.util.Scanner;
public class Choose1{
public static void main(String[]args){
Scanner scanner=new Scanner(System.in);
System.out.print("请输入a:");
int a=Integer.parseInt(scanner.next());
Scanner scanner1=new Scanner(System.in);
System.out.print("请输入b:");
int b=Integer.parseInt(scanner1.next());
a = a + b;
b = a - b;
a = a - b;
System.out.println("a="+a+"\nb="+b);
}
}
System.out.println("交换之后:\n a="+a+";\n b="+b+""); //双引双加
//学习计算机语言的基本步骤
1,HelloWorld
2,输入输出
3,变量和数据类型及运算符
4,控制语句(条件、循环)
第三章 运算符和条件结构
1,布尔类型:boolean
boolean b=true/false;
import java.util.Scanner;
public class TorF {
public static void main(String[]args){
Scanner scanner=new Scanner(System.in);
System.out.print("请输入李四的成绩:");
int zhangsan=scanner.nextInt();
int lisi=80;
boolean b=lisi>zhangsan;
System.out.println("李四的成绩是否比张三高?"+b);
}
}
表达式:由操作数和运算符组成的式子
int a=b+3; -----------------算数表达式
boolean b=a>x; -------------关系表达式/条件表达式
2,if条件结构
if(条件){
语句;
}
嵌套if语句:
if(条件1){
if(条件2){
...
}
}
并列if语句:
if(条件1){
语句1;
}
if(条件2){
语句2;
}
...
多重if语句:
if(条件1){
语句1;
}else if(条件2){
语句2;
}else if(条件3){
语句3;
}else{
语句n;
}
import java.util.Scanner;
public class Reward{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
System.out.print("请输入令狐冲的成绩:");
int a=Integer.parseInt(scanner.next());
if (a>90){
System.out.println("师父奖励令狐冲一本武功秘籍。");
}else{
System.out.println("没有奖励。");
}
}
}
3,逻辑运算符:&& || !
(1)& | 与 && ||的区别
(2)使用()控制优先级
import java.util.Scanner;
public class Aandb{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
System.out.print("请输入a:");
int a=Integer.parseInt(scanner.next());
Scanner scanner1=new Scanner(System.in);
System.out.print("请输入b:");
int b=Integer.parseInt(scanner1.next());
if ((a%b==0)||(a+b>1000)){
System.out.println(a);
}else{
System.out.println(b);
}
}
}
4,多路分支语句
(1)多重if
if(条件1){
语句1;
}else if(条件2){
语句2;
}else if(条件3){
语句3;
}else{
语句n;
}
(2)switch-case
switch(表达式){
case 值1:
语句;
break;
case 值2:
语句;
break;
...
default
语句;
}
import java.util.Scanner;
public class Phone{
public static void main(String []args){
Scanner scanner=new Scanner(System.in);
System.out.print("请输入号码:");
int a=Integer.parseInt(scanner.next());
switch(a){
case 1:
System.out.print("拨爸爸的号。");
break;
case 2:
System.out.print("拨妈妈的号。");
break;
case 3:
System.out.print("拨爷爷的号。");
break;
case 4:
System.out.print("拨奶奶的号。");
break;
default:
System.out.print("输入有误。");
}
}
}
switch的注意事项:
a,不要省掉break
b,值不允许重复
c,值只能是整形或字符型,不能是String (Java高版本支持字符串)
(3)1和2区别:
a,效率:switch效率高于多重if
b,原理:switch固定点的判定,多重if范围的判定
switch-case-----一定----->多重if
多重if-----不一定-----switch-case
注释: // , /* */
(1)类
/*
* 功能:计算器
* 日期:2018-3-6
*/
public class Calculator{
}
(2)方法
public class A{
//main方法
public static void main(){
}
}
(3)代码
aaaaaaaaaaaaaaaa;
bbbbbbbbbbbbbbbbbb;//注释该行
//下面代码的注释
ccccccccccccccc;
ddddddddddddddddddd;
eeeeeeeeeeeeeeeeee;
//注释
第四章 循环
1,while循环:先判断后执行的循环
语法:
while(循环条件){
循环操作;(改变循环条件,使循环朝着结束的方向走)
}
public class People{
public static void main(String[]args){
int people =80000;
int year=2006;
while(people<=200000){
people=(int)(people*1.25);
year++;
}
System.out.println("在"+year+"年学员将达到20万人。");
}
}
2,do-while循环:先执行后判断
语法:
do{
循环操作;
}while(循环条件);
public class People1{
public static void main(String[]args){
int people =80000;
int year=2006;
do{
people=(int)(people*1.25);
year++;
} while(people<=200000);
System.out.println("在"+year+"年学员将达到20万人。");
}
}
3,练习:
<1>猜数游戏,
import java.util.Scanner;
public class NumGame{
public static void main(String[]args){
int right=66,num;
String choose;
System.out.println("*欢迎来到猜数游戏*");
System.out.println("******************");
Scanner sc=new Scanner(System.in);
do{
System.out.println("请输入您所猜的数字(1~100):");
num=sc.nextInt();
if(num>right){
System.out.println("大于正确值。");
}else if(num<right){
System.out.println("小于正确值。");
}else
System.out.println("恭喜您,猜对了!");
do{
System.out.println("是否继续?(y/n)");
choose=sc.next();
}while(!(choose.equals("y")||choose.equals("n")));
}while(choose.equals("y"));
System.out.println("欢迎下次再来。");
}
}
<2>登录
import java.util.*;
public class Login{
public static void main(String[]args){
//系统内置的正确账号和密码
String ok_user="admin";
String ok_pwd="123456";
int count=3;//登录次数
System.out.println("**********************************************");
System.out.println("\t作业展示系统登录");
System.out.println("**********************************************");
Scanner sc=new Scanner(System.in);
while(count>0){
System.out.print("请输入用户名:");
String user=sc.next();
System.out.print("请输入密码:");
String pwd=sc.next();
if(user.equals(ok_user)&&pwd.equals(ok_pwd)){
System.out.println("恭喜登录成功!");
break;
}else{
System.out.println("用户名或密码错误!");
count--;
if(count!=0){
System.out.println("您还有"+count+"次机会!");
}
}
}
System.out.println("系统退出。。。");
}
}
4,for循环:
语法:
for(初始化循环变量;循环条件;更新循环变量){
循环操作
}
for(int i=0;i<10;i++){
操作;
}
public class Jiu9{
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("");
}
}
}
执行流程:
int i=0;
i<10判断
操作
i++
i<10判断
操作
。。。
for循环的省略方式:
int i=0;
for(;;){
if(i<10){
操作;
i++;
}else{
break;
}
}
等价于:for(int i=0;i<10;i++){操作;}
5,死循环
for(;;){
if(条件) break;
}
while(true){
if(条件) break;
}
do{
if(条件) break;
}while(true);
6,while,do-while,for 使用原则
(1)循环的次数能否确定:
能确定次数:for
不能确定次数:while和do-while
(2)while系
先判断后执行:while
先执行后判断:do-while
7,跳出
break :switch-case和循环中
continue:循环中
无法访问的语句:
if(1>1){
....
}
while(false){
...
}
break;
...
return;
...
8,for循环练习
(1)打印图形练习:矩形、三角形 ...
***********
***********
***********
***********
*
***
*****
*******
*
***
*****
public class Demo1{
public static void main(String[]args){
jiu();
}
//方法
public static void jiu(){
for(int i=8;i>0;i--){
for(int j=1;j<=2*i-1;j++){
System.out.print("*");
}
System.out.println("");
}
}
}
(2)99乘法表
1X1=1
1X2=2 2X2=4
................
基本类型:int double char
引用类型:String(类)
String s="hello";
if(s.equals("hello")){ 错误:s=="hello"
}