标签:3.1 大小 style 出错 表示 str 最小 nbsp eth
一、优先级
1.1 先判断5>3,true 6>4 true;然后true==true ,最后是true;
1.2 6>5,true;而true和4无法比较。所以该判断出错;
1.3 和1.2比较,可以知道该比较可以正常进行
1.4 错误,
1.5 >号优先级要高于=。所以先判断b>false ,这个无法判断。所以错误
1.6 先判断a和b true 或者false,但是true和false 没法比较大小,所以也错误。
2、浮点数判断大小
package hello; import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in=new Scanner(System.in); double a=1.0; double b=0.2+0.2+0.2+0.2+0.2; double c=0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1; System.out.println("a="+a); System.out.println("b="+b); System.out.println("c="+c); System.out.println(a==c);//浮点数直接判断相等很容易出错 System.out.println(Math.abs(a-c)<1e-6);//差值和很小的一个数比较 } }
明显看到c逼近1,但是不是1,所以直接判断a==c,false ;
浮点数比较是要用差值比较。
3、
4、
switch 遇到break才退出,否则会越过case 继续做下一个case的任务。
package hello; import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in=new Scanner(System.in); int a=1; switch(a) { case 1: case 2: System.out.println("您好"); case 3: System.out.println("晚上好"); break; default: System.out.println("再见"); break; } } }
package hello; import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in=new Scanner(System.in); int a=4; switch(a) { default: System.out.println("再见"); case 1: case 2: System.out.println("您好"); case 3: System.out.println("晚上好"); break; } } }
二、循环
2.1
package hello; import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in=new Scanner(System.in); int num=in.nextInt(); int n=0; while(num!=0) { n++; num=num/10; } System.out.println(n); } }
输入为0时是有问题的。
package hello; import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in=new Scanner(System.in); int num; int n=0; num=in.nextInt(); do { n++; num=num/10; } while(num!=0);//分号别忘了 System.out.println(n); } }
2.2
package hello; import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in=new Scanner(System.in); int num=(int)(Math.random()*100);//生成随机数 int i=1;//次数 int n; n=in.nextInt(); while(n!=num) { if(n>num) { System.out.println("大了"); } else { System.out.println("小了"); } n=in.nextInt(); i++; } System.out.println("随机数为:"+num+",猜了"+i+"次。"); } }
三、循环控制
int 4个字节,4*8=32位。表示的最大数2^31-1,最小数-2^31。
3.1
package hello; import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in=new Scanner(System.in); System.out.println("100以内素数有:"); int num=0; for(int i=2;i<=100;i++) { int flag=0;//素数标志 for(int j=2;j<=(int)Math.sqrt(i);j++) { if(i%j==0)//不是素数 { flag=1;//不是素数 break; } } if(flag==0)//素数 { num++; System.out.println(i); } } System.out.println("100以内素数个数为:"+num); } }
3.2
枚举方法求多种情况。
package hello; import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in = new Scanner(System.in); int amount = in.nextInt();//总钱数 for ( int one = 0; one <=amount; ++one )//1块钱从1到33张 { for ( int five = 0; five <= amount/5; ++five )//5块钱 从1到6张 { for ( int ten = 0; ten <= amount/10; ++ten )//10块钱 从1到3张 { for ( int twenty = 0; twenty <= amount/20; ++twenty )//20块钱 1张 { if ( one+five*5+ten*10+twenty*20 == amount ) { System.out.println(one+"张1元,"+five+"张5元,"+ten+"张10元,"+twenty+"张20元-->"+amount); } } } } } } }
多个循环跳出
标签:3.1 大小 style 出错 表示 str 最小 nbsp eth
原文地址:https://www.cnblogs.com/ruo-li-suo-yi/p/9085600.html