![](/img/trans.png)
[英]I am getting an ArithmeticException Error for dividing by zero. But I am not. Why?
[英]Why am I getting a “/ by zero” error in this program?
/**
* Write a description of class TicTacToe here.
*
* @author (your name)
* @version (a version number or a date)
*/
import java.util.Scanner;
public class TicTacToe
{
public static void main(){
Scanner s = new Scanner(System.in);
int state = 0, turn = 1, choice, drawcheck=0;
for(int end=0; end==0; end=end){
System.out.println("\u000c");
for(int i =1; i<10; i++){
if(state%(3^i)==0){
System.out.print(" ");
}
else if(state%(3^i)==1){
System.out.print("X");
}
else{
System.out.print("O");
}
if(i%(3^i)==0){
System.out.println("");
}
else{
System.out.print("|");
}
}
System.out.println("Enter State (max 59048)");
state=s.nextInt();
}
}
}
我试图制作一个井字游戏,但由于某种原因,这会出现除以零错误? 我是一个绝对的编码菜鸟,有人可以帮忙吗? (我知道这不是游戏,我试图隔离部分,这个错误)
我有一种感觉,您正在尝试将模 3 用于 i 的幂。
然而^
符号意味着 XOR,而不是幂,所以它发生了,你得到 3 % 0 - 这基本上是零除法。
如果你想得到 3 的 i 次方,你需要Math.pow(3, i)
嗨,您似乎误会了 ^ 运算符,它是 XOR
所以当二进制 11 中的 i = 3 时
3^i = 11 异或 11 => 0
XOR 是二元运算符,比较第 i 个索引处的位,如果第 i 个索引处只有一位为 1,则返回 1。这意味着当您异或相同的数字时,您会得到 0
[更新] 3 :p 的固定十进制表示
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.