尚硅谷 第三课全 java-变量类型转换-字符与字符串-算数运算符-赋值运算符-三元运算符-.switch语句-循环结构-while 循环语句 do-while 循环语句

课前复习:
1.变量类型转换
public class code1{
		public static void main(String[]args){
				long L=234;//自动类型转换
				System.out.println(L);
				L=248728394789247928244;
				Systm.out.println(L );
				//float f1=12,3;//12.3是double类型
				float f1=(float)(12.3)
			}
	}


2.字符与字符串
public class code1{
		public static void main(String[]args){
				char m='a';
				char n='b';
				System.out.println(m+n);//195=97+98
				char c='a';
				System.out.println(""+(c+1)+(char)(c+1));//98b
			}
	}
进制:2进制 十进制 8进制 16进制 所有数据都是以二进制保存的 
整数的原码,反码,补码(分为正数,负数)正数的原码,反码,补码三码合一
进制转换:2进制到10进制,8进制,16进制
3.运算符
<1.算数运算符:+-*、% ++ --
/*
算数运算符
*/
public class Text3{
	public static void main(String []args){
		int i1=10;
		int i2=10/2;

		int i3=12;
		int i4=i3/2;
		System.out.println("i2:"+i2);//5
		System.out.println("i4:"+i4);//2

		double d1=i3/5;
		System.out.println("d1:"+d1);
		 int a=1230;
		 int b=a/1000;//1;
		 int c=12/5*5;
		 System.out.println("b:"+b);
		 System.out.println("c:"+c);
		 
		 int j1=12;
		 int j2=j1%5;
		 System.out.println("j2:"+j2);//2

		  j1=12;
		  j2=j1%-5;
		 System.out.println("j2:"+j2);//2

		  j1=-12;
		  j2=j1%5;
		 System.out.println("j2:"+j2);//-2

		  j1=-12;
		  j2=j1%-5;
		 System.out.println("j2:"+j2);//-2
		 //结果与被模数一直

		 int m1=10;
		 int m2=m1++;
		 System.out.println("m1:"+m1);//11
		 System.out.println("m2:"+m2);//10

		 m1=10;
		 m2=++m1;
		 System.out.println("m1:"+m1);//11
		 System.out.println("m2:"+m2);//11
		//前++ 先加一后赋值
		//后++ 先赋值后++
		 m1=10;
		 m2=--m1;		 System.out.println("m1:"+m1);//9
		 System.out.println("m2:"+m2);//9		

		 m1=10;
		 m2=m1--;
		 System.out.println("m1:"+m1);//9
		 System.out.println("m2:"+m2);//10	

		 short s1=10;
		 s1=(short)(s1+1);
		 s1++;//数据类型没变
		 System.out.println("s1:"+s1);

	}
}
<2.赋值运算符 =   +=   -=   *=   /=   %=
int i=10;
i+=2;
System.out.println(i); //12
 Int j=10;
J=j+2;
System.out.println(j);

Short s1=10;
s1+=2;
s1=s1+2;
s1=(short)s1+2;

class Text4{
	public static void main(String[]args){
		int i1=10;
		//i1=i1+5;
		i1+=5;//i1=i1+5;

		double d=15;
		d*=0.2;//d=d*0.2;
		System.out.println("i1:"+i1);
		System.out.println("d:"+d);

		short s=10;
		s+=2;//s=s+2;
		System.out.println("s:"+s);

		int i=1;
		i*=0.1;
		System.out.println(i);//0
		i++;
		System.out.println(i);//1
	}
<3.比较运算符 == > < >= <= instanceof
比较运算符的结果为Boolean类型的值
4>=3返回的是true 表示的是4>3||4==3
If(3<i<5)//不对
If(i>3&&i<5){}

<4.逻辑运算符 &  && |   ^  !
>逻辑运算符比较的是boolean的值
& &&的区别
&  |  当符号左端为假时程序会继续执行符号又端的

class Text7{
	public static void main(String[] args){
		boolean b1=true;
		boolean b2=false;
		System.out.println(b1 & b2);
		System.out.println(b1 && b2);
		System.out.println(b1 | b2);
		System.out.println(b1 || b2);
		System.out.println(b1 ^ b2);
		System.out.println(!b1);

		//&当符号左端为假时程序会继续执行符号又端的
		int i1=10;
		if(b2 & i1++>0){//全部判断完
			System.out.println("条件为真");
		}else{
			System.out.println("条件为假");
		}
		System.out.println("i1:"+i1);

		int i2=10;
		if(b2 && i2++>0){//短路判断
			System.out.println("条件为真");
		}else{
			System.out.println("条件为假");
		}
		System.out.println("i2:"+i2);

		if (b2 & 10/0 >2){
			System.out.println("Hi Hi");
		}

		//| and ||的区别
		int j1=10;
		if(b1 | j1++>0){
			System.out.println("条件为真");
		}else{
			System.out.println("条件为假");
		}
		System.out.println("j1="+j1);

		int j2=10;
		if(b1 || j2++>0){
			System.out.println("条件为真");
		}else{
			System.out.println("条件为假");
		}
		System.out.println("j2="+j2);
	}
}
<5.位运算符 <<  >> >>> & |  ^  ~
总结:<<:整数
class Text8{
	public static void main(String[] args){
		int a=31;
		int b=a<<2;
		System.out.println(b);//124  =31*4
		System.out.println(2<<3);//16
		System.out.println(31<<28);//-26843546

		a=-31;
		b=a>>2;
		System.out.println(b);
		b=a>>>2;
		System.out.println(b);
	}
}
[例子]如何交换两个整数的值
class Text9{
	public static void main(String[] args) 
	{
		int m=12;
		int n=5;
		System.out.println("m:"+m+" n,"+n);
		int temp =m;
		m=n;
		n=temp;
		System.out.println("m:"+m+" n,"+n);
		
		m=m+n;//m=17;
		n=m-n;//12=17-5
		m=m-n;//5=17-12
		System.out.println("m:"+m+" n,"+n);
		
		m=m^n;
		n=m^n;
		m=m^n;
		System.out.println("m:"+m+" n,"+n);
	}
}
/*

*/
class TestReview{
	public static void main(String[] args){
		long l = 2341;//自动类型转换
		System.out.println(l);
		long l1 = 1431542366346123L;//直接赋值
		System.out.println(l1);
		float f1 = 12.3F;//编译出错。因为12.3是double类型的
		
		//byte short char 三者之间运算的结果为int型
		char m = 'a';
		char n = 'b';
		System.out.println(m + n);//195 = 97+98

		char c = 'a';
		System.out.println(c + 1);//98
		System.out.println((char)(c + 1));//b

		//如何手动实现整型数值60的二进制到十六进制的转换
		String str1 = Integer.toBinaryString(60);
		String str2 = Integer.toHexString(60);
		System.out.println(str1);
		System.out.println(str2);

		int i1 = 60;
		int i2 = i1&15;
		String j = (i2 > 9)? (char)(i2-10 + 'A')+"" : i2+"";

		int temp = i1 >>> 4;
		i2 = temp & 15;
		String k = (i2 > 9)? (char)(i2-10 + 'A')+"" : i2+"";
		System.out.println(k+""+j);
	}
}
<6.三元运算符
格式(条件表达式)? 表达式1 : 表达式2 
/*
三元运算符
(条件表达式)?表达式1 :表达式2
返回一个结果
结果的数据类型取决于表达式1.表达式2的数据类型
两个表达式的数据类型要一直
*/
class Text10{
	public static void main(String[] args) 
	{
		int i=20;
		int j=20;
		//取出最大值
		String  max=(i>j)?"i大":(i==j)?"相等":"j大";
		System.out.println(max);
	}
}  
class Text12{
	public static void main(String[] args) 
	{
		//4,2,1
		int a=13;
		int b=12;
		int c=5;
		int max=0;
		max=(a>b?(a>c?a:c):(b>c?b:c));
			System.out.println("max="+max);
	}
}
4.流程控制:
<1顺序结构:
<2.分支结构:
(1)条件判断 if  if else    if  else if  else if  else
   说明: 一旦满足(即返回true)就到相应的{}执行
import java.util.*;
class Text15{
	//如何从键盘输入
	/*
	1.导入java.util.Scanner类
	2如果多个条件间是互斥关系,那么多个if else if谁上谁下不影响
	3如果多个条件是包含关系,要将范围小的放在范围大的上边
	*/
	public static void main(String[] args){
		Scanner s=new Scanner(System.in);
		//调用方法,获取信息
		//String a=s.next();
		//4.操作
		//System.out.println(a);
		int score=s.nextInt();
		if(score==100){
			System.out.println("奖励一个BOMA");
		}else if(score>80 && score<=90){
			System.out.println("奖励一个IPone");
		}else if(score>=60&&score<=80){
			System.out.println("奖励一个参考书");
		}
		else{
			System.out.println("什么都没有");
		}
	}
}
本次课
<3.循环结构:

import java.util.*;
public class code2{
		public static void main(String[]args){
				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){
						if(num3>num1){
								System.out.println(num2+"<"+num1+"<"+num3);
							}else if(num3<num2){
								System.out.println(num3+"<"+num2+"<"+num1);
							}else{
								System.out.println(num2+"<"+num3+"<"+num1);
								}
					}else{
							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);
								}
						}
			}
	}


注意:
public class code3{
		public static void main(){
				int i=2;
				if(i<0)
						System.out.println("Hello Word!");
						System.out.println("word");
				else
				System.out.println("Hello");
			}
	}


/*
大家都知道,男大当婚,女大当嫁。那么女方家长要嫁女儿,
当然要提出一定的条件:
高:180cm以上;
富:财富1千万以上;
帅:是。
如果这三个条件同时满足,则:“我一定要嫁给他!!!”
如果三个条件有为真的情况,则:“嫁吧,比上不足,比下有余。”
如果三个条件都不满足,则:“不嫁!”
*/
import java.util.*;
class Text17{
	public static void main(String[] args){
		boolean a=false;
		boolean b=false;
		boolean c=false;
		System.out.println("输入:高:");
		a= ((new Scanner(System.in).nextDouble())>=180);
		System.out.println("输入:富:");
		b=((new Scanner(System.in).nextDouble())>=10000);
		System.out.println("输入:帅: Y/N");
		c=new String ((new Scanner(System.in).next())).equals("Y");
		if(a&&b&&c){
			System.out.println("我一定要嫁给他!!!");
		}else if(a|b|c){
			System.out.println("嫁吧,比上不足,比下有余。");
		}else{
			System.out.println("不嫁!");
		}
	
	}
}


import java.util.Scanner;

class TestExe{
	public static void main(String[] args){
		System.out.println("请输入身高(cm):");
		Scanner scanner = new Scanner(System.in);
		int hight = scanner.nextInt();
		System.out.println("财富(千万):");
		double fortune = scanner.nextDouble();
		System.out.println("帅否:(是/否)");//("帅否:(true/false)");
		boolean smart = scanner.nextBoolean();
		//String str = scanner.next();
		
		if (hight >= 180 && fortune >= 1 && smart == true/*str.equals("是")*/){
			System.out.println("我一定要嫁给他!!!");
		}else if (hight >= 180 || fortune >= 1 || smart == true/*str.equals("是")*/){
			System.out.println("嫁吧,比上不足,比下有余.");
		}else
		System.out.println("不嫁!");
	}
}
5.switch语句
/*
1.根据变量值,选择相应的case 语句执行,一旦进入case语句在没有出现break和
case语句,在没有出现break,case语句的情况下,会继续执行case语句,而不跳转当签名结构
2在switch-case结构中,可以使用break比碍事当程序执行到此程序的时候,跳出当前循环
3.default的位置比较灵活,建议加上break;
4.switch  的类型是int byte short String
2.若多个case语句的执行语句相同,可以合并
3.switch case()满足变量类型,数据不多
*/
import java.util.*;
public class code4{
		public static void main(String[]args){
				Scanner s=new Scanner (System.in);
				
				while(true)	{
						System.out.println("输入1--3题目-1break");
						int a=s.nextInt();
						if(a==-1)break;
						switch(a){
								case 1:
									fun1();
									break;
								case 2:
									fun2();
									break;
								case 3:
									fun3();		
									break;
								default:
									System.out.println("输入错误!!");
									break;
							}
					}			
			}
			public static void fun1(){
				Scanner s=new Scanner (System.in);
				System.out.println("输入1 2 3 -1结束");
				int i=s.nextInt();
				while(i!=-1){
					switch(i){
						default:
							  System.out.println("other");
							  break;
							case 0:
								System.out.println("zero");
								break;
							case 1:
								System.out.println("one");
								break;
							case 2:
								System.out.println("two");
								break;
							case 3:
								System.out.println("three");
								break;
						}
						i=s.nextInt();
				}
				System.out.println("请输入:spring /summer /winter");
				String season =s.next();
				switch(season){
						case "spring":
							System.out.println("春天");break;
						case "summer":
							System.out.println("夏天");break;
						case "winter":
							System.out.println("冬天");break;
						default:
							System.out.println("other");break;
					}				
				}
			public static void fun2(){
				Scanner s=new Scanner(System.in);
				System.out.println("输入学生成绩:");
				int score=s.nextInt();
					switch(score/10){
							case 10:
							case 9:
							case 8:
							case 7:
								System.out.println("良好");break;
							case 6:
							case 5:
							case 4:
								System.out.println("不好");break;
							default:
								System.out.println("why");
						}				
					switch(score/60){
							case 1:
								System.out.println("合格");break;
							case 0:
								System.out.println("不合格");break;
							default:
								System.out.println("输入出错!");
						}
				
				}
			public static void fun3(){
					Scanner s=new Scanner (System.in);
					System.out.println("2014\n请输入Month");
					int month=s.nextInt();
					System.out.println("请输入Day");
					int day=s.nextInt();
					
					int sum=0;
					switch(month){
							case 12:
								sum+=30;
							case 11:
								sum+=31;
							case 10:
								sum+=30;
							case 9:
								sum+=31;
							case 8:
								sum+=31;
							case 7:
								sum+=30;
							case 6:
								sum+=31;
							case 5:
								sum+=30;
							case 4:
								sum+=31;
							case 3:
								sum+=28;
							case 2:
								sum+=31;
							case 1:
								sum+=day;break;
								default:
									System.out.println("出错");
						}
						System.out.println("2014年"+month+ "月" + day + "日" +"是这年的:" + sum +"天!");
				}
	}

/*
从键盘分别输入年、月、日,判断这一天是当年的第几天
 
   注:判断一年是否是闰年的标准:
       1)可以被4整除,但不可被100整除
       2)可以被400整除
*/
import java.util.*;
public class code7{
		public static void main(String[]args){
			System.out.println("从键盘上输入“年” “month”和“day”");
				Scanner s=new Scanner(System.in);
				int Year=s.nextInt();
				int Month=s.nextInt();
				int Day=s.nextInt();
				int [] a={31,28,30,31,30,31,30,31,30,31,30,31};
				int day=0;
				if((Year%4==0&&Year%100!=0) || Year%400==0){
						a[1]=29;
						System.out.println("闰年:");
					}
					else{
							System.out.println(" 不是闰年。。");
						}
				if(Day>a[Month-1]){
					System.out.println("没有这个日期 :出错");
					System.exit(1);
					}
				for(int i=0;i<Month-1;i++){
						day+=a[i];
				}
				day+=Day;
				System.out.println("这是2013年的"+day+"天");
			}
	}
If else 与switch
import java.util.*;
public class code5{
		public static void main(String[]args){
				fun1();
				fun2();
			}
		public static void fun2(){
			Scanner s=new Scanner (System.in);
			System.out.println("请输入学生成绩:");
			int score = s.nextInt();
			char level=' ';
				switch(score / 10){
						case 10:
						case 9:
							level = 'A';
							break;
						case 8:
						case 7:
							level = 'B';
							break;
						case 6:
							level = 'C';
							break;
						default:
							level = 'D';
							break;						
					}
					System.out.println("学生成绩:"+score+
											",等级为" + level);
			}
		public static void fun1(){
				Scanner s=new Scanner (System.in);
				System.out.println("请输入学生成绩:");
				int score = s.nextInt();
				char level=' ';
				
				if(score>=90&&score<=100){
						level='A';
				}else if(score>=70 && score<=80){
						level='B';
				}else if(score>=70 && score<=80){
						level='C';
				}else{
						level='D';
				}
				System.out.println("学生成绩:"+score+
											",等级为" + level);
			}
	}
循环结构
循环语句功能 在某些条件满足的情况下,反复执行特定代码的功能 循环语句的四个组成部分 初始化部分(init_statement) 循环条件部分(test_exp)  循环体部分(body_statement)  迭代部分(alter_statement)  循环语句分类 for 循环 while 循环 do/while 循环  
For 循环实例:
public class code6{
	public static void main(String []args){
		int i=0;
			for(System.out.println("Hello");i<7;System.out.println("word"),i++){
					System.out.println("b");
				}
			//i=9,i=8;
			int count=0;
			for( i=1;i<100 ;i++ ){
					if(i%2== 0){
							System.out.print("\t"+i);
							count++;
						}
					if(i%10==0)System.out.println();
				}
				System.out.println("个\n数为"+count);
		}
		
}
例子2
/*
编写程序FooBizBaz.java,
从1循环到150并在每行打印一个值,
另外在每个3的倍数行上打印出“foo”,
在每个5的倍数行上打印“biz”,
在每个7的倍数行上打印输出“baz”。
*/
public class Text7{
		public static void main(String[]args){
				for(int i=1;i<=150;i++){
					System.out.print(i+" ");
						if(i%3==0){
								System.out.print("foo ");
							}
							if(i%5==0){
								System.out.print("biz ");
							}
							if(i%7==0){
								System.out.print("baz ");
							}
								System.out.println();
					}
			}
	}
/*
1.打印1~100之间所有奇数的和
2.打印1~100之间所有是7的倍数的整数的个数及  
    总和(体会设置计数器的思想)
3.输出所有的水仙花数,所谓水仙花数是指一个3
   位数,其各个位上数字立方和等于其本身。
    例如: 153 = 1*1*1 + 3*3*3 + 5*5*5
*/
public class Text8{
		public static void main(String[]args){
				 fun1();
				 fun2();
				 fun3();
			}
		public static void fun1(){
			int sum=0;
				for(int i=0;i<100;i++){
						if(i%2==1){
								sum+=i;
					  }
			  }
			System.out.println("1~100之间所有奇数的和"+sum);
		}
		public static void fun2(){
			int i=0;
				int sum=0;
				for(i=0;i<100;i++){
						if(i%2==1){
								sum+=i;
					  }
			  }
			System.out.println("1~100之间所有是7的倍数的整数的个数"+i+"总和"+sum);
		}
		public static void fun3(){
				int sum=0;
				int code=0;
			for(int i=0 ;i<=9 ;i++ ){
				for(int j=0 ;j<=9 ;j++ ){
					for(int k=0 ;k<=9 ;k++ ){
						code=i*i*i+j*j*j+k*k*k;
						if(code/100>0){
							int a=code/100;
							int b=(code%100)/10;
							int c=(code%10);
							if(a==i&&b==j&&c==k){
							System.out.print("\t"+code);
							sum+=code;
						 }
					  }
					}	
				}
			}	
			System.out.println("\n\t求和结果:"+sum);
		}
	}

while 循环语句 do-while 循环语句

public class code8{
	public static void main(String[]args){
			int i=1;
			int count=0;
			int sum=0;
			while(i<=100){
				if(i%2==0){
						System.out.println(i);
						count++;
						sum+=i;
				}	
				i++;
			}
			System.out.println(i);
			System.out.println("个数为"+count);
			System.out.println("和为"+sum);
			
			int j=1;
			do{
				if (j%2==0){
						System.out.println("*****"+j);
					}
				j++;
			}while(j<=100);
			System.out.println(i);
			System.out.println("个数为"+count);
			System.out.println("和为"+sum);
			
			int m=10;
			do{
					System.out.println(m);
				}while(m<5);
		}
}

1)	九九乘法表 2)1—100之间的所有质
public class code9{
	public static void main(String[]args){
		for(int i=1;i<=9;i++){
			for(int j=1 ;j<=9 ;j++ ){
				System.out.print(i+"*"+j+"="+i*j+"\t");	
			}
			System.out.println();
		}	
		int i=0,j=0,k=1;
		for( i=3 ;i<100 ;i++ ){
			for(j=2 ;j<i ;j++ ){
				if(i%j==0)break;
			}
			if(j==i){
				System.out.print("\t"+i);	
				k++;
			}
			if(k%5==0){
				System.out.println();
				k=1;
			}
		}
	}
}


public class code11{
	public static void main(String[]args){
			for( int i=0;i<9/2 ;i++  ){
				for(int k=0 ;k<9/2-(i+1) ;k++ )//空格
					System.out.print(" ");
				for(int j=0;j<=i*2;j++)
					System.out.print("*");
					System.out.println();
			}
			for( int i=0;i<=9/2 ;i++  ){
				for(int k=0 ;k<i+1 ;k++ )//空格
					System.out.print(" ");
				for(int j=0;j<=(9/2)-2*i;j++)
					System.out.print("*");
				System.out.println();
			}
	}
}

public class code9{
	public static void main(String[]args){
		for(int i=1;i<=9;i++){
			for(int j=1 ;j<=9 ;j++ ){
				System.out.print(i+"*"+j+"="+i*j+"\t");	
			}
			System.out.println();
		}	
		int i=0,j=0,k=3;
		System.out.println("\t"+1+"\t"+2+"\t");
		long start =System.currentTimeMillis();
		boolean al=false;
		for( i=3 ;i<1000000 ;i++ ){
			for(j=2 ;j<Math.sqrt(i) ;j++ ){
				if(i%j==0){
				al=true;
				break;
				}
			}
			if(!al){
				System.out.print("\t"+i);		
			}
			al=false;
		}
		long end=System.currentTimeMillis();
		System.out.println("\n"+(end-start));//5288
	}
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值