一、优先级

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、

3.1

package Hello;

import java.util.Scanner;

public class hello_test {

	public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int n=in.nextInt();
double sum=0.0;
for(int i=1;i<=n;i++)
{
sum+=(1.0/i);
}
System.out.println(sum);//输出原数
System.out.printf("%.2f",sum);//输出 保留两位小数;注意输出的函数变了 } }

3.2

(1)利用标志位,正负变换

package Hello;

import java.util.Scanner;

public class hello_test {

	public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);//创建扫描器
int n=in.nextInt();
double sum=0.0;
int flag=1;//标志位
for(int i=1;i<=n;i++)
{
sum+=(flag*(1.0/i));
flag=-flag;
}
System.out.println(sum);//输出原数
System.out.printf("%.2f",sum);//输出 保留两位小数;注意输出的函数变了
in.close();//关闭扫描器
} }

(2)

package Hello;

import java.util.Scanner;

public class hello_test {

	public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);//创建扫描器
int n=in.nextInt();
double sum=0.0;
for(int i=1;i<=n;i++)
{
sum+=Math.pow(-1, i+1)*(1.0/i);//注意乘方怎么表示
}
System.out.println(sum);//输出原数
System.out.printf("%.2f",sum);//输出 保留两位小数;注意输出的函数变了
in.close();//关闭扫描器
} }

4、

(1)逆向递减求

package Hello;

import java.util.Scanner;

public class hello_test {

	public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);//创建扫描器
int n=in.nextInt();
int m=in.nextInt(); //输入两个值
int i=n;
while(n%i!=0 || m%i!=0)
{
i--;
}
System.out.println(m+"和"+n+"的最大公约数是:"+i);
in.close();//关闭扫描器
} }

(2)辗转相除求

package Hello;

import java.util.Scanner;

public class hello_test {

	public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);//创建扫描器
int n=in.nextInt();
int m=in.nextInt(); //输入两个值
int a,b,y;
a=n;
b=m;
y=m;
while(a%b!=0) //辗转相除法
{
y=a%b;//余数
a=b;
b=y;
}
System.out.println(m+"和"+n+"的最大公约数是:"+b);
in.close();//关闭扫描器
} }

  

Java 判断 循环的更多相关文章

  1. 第二周:Java For循环方法简介

    1.for循环的作用 Java当中循环的意思就是让Java程序重复地执行某些语句.在程序设计时,常常需要处理大量的重复动作, 采用循环结构可以降低程序书写的长度和复杂度可使复杂问题简单化,提高程序的可 ...

  2. [Java基础]循环结构3

    [Java基础]循环结构3 break 与 continue 中断循环... /** 文件路径:G:\JavaByHands\循环语句\ 文件名称:BreakTest.java 编写时间:2016/6 ...

  3. [java基础]循环结构2

    [java基础]循环结构2 写了几个循环结构练习~记录一下~~ 1:99乘法表 /** 文件路径:G:\JavaByHands\循环语句\ 文件名称:GameForFor.java 编写时间:2016 ...

  4. [java基础]循环结构1

    [java基础]循环结构1 循环结构:for循环,while循环,do_while循环在,增强型for循环 /** 文件路径:G:\JavaByHands\循环语句\ 文件名称:WhileTest.j ...

  5. 07_Python的控制判断循环语句1(if判断,for循环...)_Python编程之路

    Python的数据类型在前几节我们都简单的一一介绍了,接下来我们就要讲到Python的控制判断循环语句 在现实编程中,我们往往要利用计算机帮我们做大量重复计算的工作,在这样的情况下,需要机器能对某个条 ...

  6. java集合循环删除

    java集合循环删除,java list集合操作,java循环.分享牛,分享牛原创.java集合删除方法. 2.6.1.第一种方式 list.add("1"); list.add( ...

  7. Java学习笔记九:Java的循环跳转语句

    Java的循环跳转语句 一:Java循环跳转语句之break: 生活中,我们经常会因为某些原因中断既定的任务安排.如在参加 10000 米长跑时,才跑了 500 米就由于体力不支,需要退出比赛.在 J ...

  8. Java判断一个类里是否存在某个属性

    Java判断一个类里是否存在某个属性 测试pojo类,比方我有个User类 @Getter @Setter public class User { private Long id; private S ...

  9. Java之 循环(三)

    1. switch语句 1.1 分支语句switch语句 格式 switch (表达式) { case 1: 语句体1; break; case 2: 语句体2; break; ... default ...

随机推荐

  1. Nginx之反向代理配置(二)

    前文我们聊了Nginx的防盗链.反向代理以及开启nginx代理缓存,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/12417130.html:今天我们继续说ng ...

  2. js事件的三个阶段

    js事件的三个阶段分别为:捕获.目标.冒泡 1.捕获:事件由页面元素接收,逐级向下,到具体的元素 2.目标:具体的元素本身 3.冒泡:跟捕获相反,具体元素本身,逐级向上,到页面元素 IE5.5:div ...

  3. NetAnalyzer笔记 之 十一 打造自己的协议分析语言(1)初衷与语法构想

    回头看看NetAnalyzer开发系文档上次一篇竟然是2016年,老脸一红.不过这几年墨云成功过的讨到一个温柔贤淑的老婆,有了一个幸福的家庭,去年9月又有了一个大胖儿子,想想也就释然了^_^ 其实这几 ...

  4. 简单的节流函数throttle

    在实际项目中,总会遇到一些函数频繁调用的情况,比如window.resize,mouseover,上传进度类似的触发频率比较高的函数,造成很大的性能损耗,这里可以使用节流函数来进行性能优化,主要是限制 ...

  5. WEB渗透 - XSS

    听说这个时间点是人类这种生物很重要的一个节点 cross-site scripting 跨站脚本漏洞 类型 存储型(持久) 反射型(非持久) DOM型 利用 先检测,看我们输入的内容是否有返回以及有无 ...

  6. 1,Linux(CentOS)中的基本配置

    1,hostname(主机名) 查看主机名:hostname 临时修改主机名:hostname hadoop1 永久修改主机名:vi etc/sysconfig/network :  [NETWORK ...

  7. Python之locust踩坑指北

    坑点1:locust安装报错 其中一种情况:error:Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visua ...

  8. C++ 指针实现字符串倒序排列

    #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <coni ...

  9. Docker 技术系列之安装Docker Desktop for Mac

    终于要进入到Docker技术系列了,感谢大家的持续关注. 为什么要选择Docker?因为Docker 轻巧快速,提供了可行.经济.高效的替代方案.举个例子,安装Nginx,Mysql,Redis等常用 ...

  10. EPX Studio开发平台简介

    大家问我最多的问题就是“EPX 是什么?”“EPX 能够用来做什么?”“EPX 有什么优势?”“EPX 与其它开发平台的区别是什么?” 问题林林总总,总也回答不完,希望通过正文前面的这段文字,来简要回 ...